From 3b0d84cfa2c34dd2c72b02bf52506c0d1f1c530f Mon Sep 17 00:00:00 2001 From: Martin Ciglan Date: Wed, 9 Mar 2016 14:44:08 +0100 Subject: [PATCH 1/1] Bug 5345: Unable to use get-schema RPC due to unsafe class casting This patch represents class cast fix for Beryllium SR1 code base only due to using of deprecated structures. Change-Id: I1f1f46f35401a8b4310e16345b1e8419c66f3f35 Signed-off-by: Martin Ciglan --- .../yang/parser/builder/impl/BuilderUtils.java | 10 +++++++++- .../yangtools/yang/parser/builder/impl/ModuleImpl.java | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/BuilderUtils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/BuilderUtils.java index 792db8d9c8..57d33c6442 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/BuilderUtils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/BuilderUtils.java @@ -790,7 +790,15 @@ public final class BuilderUtils { for (TypeDefinition node : nodes) { QName qname = QName.create(parentQName, node.getQName().getLocalName()); SchemaPath schemaPath = parentPath.createChild(qname); - result.add(new TypeDefinitionBuilderImpl(moduleName, line, qname, schemaPath, (ExtendedType) node)); + //Beryllium fix only, using deprecated structures + if (node instanceof ExtendedType) { + result.add(new TypeDefinitionBuilderImpl(moduleName, line, qname, schemaPath, (ExtendedType) node)); + } else { + ExtendedType.Builder typeBuilder = ExtendedType.builder(node.getQName(), node.getBaseType(), + Optional.fromNullable(node.getDescription()), Optional.fromNullable(node.getReference()), + node.getPath()); + result.add(new TypeDefinitionBuilderImpl(moduleName, line, qname, schemaPath, typeBuilder.build())); + } } return result; } diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java index fa4a8ae25a..7f5942c5ae 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java @@ -91,7 +91,8 @@ public final class ModuleImpl extends AbstractDocumentedDataNodeContainer implem this.extensionNodes = ImmutableList.copyOf(builder.getExtensions()); this.identities = ImmutableSet.copyOf(builder.getIdentities()); this.unknownNodes = ImmutableList.copyOf(builder.getExtensionInstances()); - this.source = checkNotNull(builder.getSource(), "Missing source"); + //no check for Beryllium code + this.source = builder.getSource(); } -- 2.36.6