Bug 5345: Unable to use get-schema RPC due to unsafe class casting 91/35991/2
authorMartin Ciglan <mciglan@cisco.com>
Wed, 9 Mar 2016 13:44:08 +0000 (14:44 +0100)
committerMartin Ciglan <mciglan@cisco.com>
Thu, 10 Mar 2016 07:26:22 +0000 (07:26 +0000)
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 <mciglan@cisco.com>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/BuilderUtils.java
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/impl/ModuleImpl.java

index 792db8d9c84b8a1a677df8511343fa097565845b..57d33c6442c3bcd9aba524a5158038e821ce71b0 100644 (file)
@@ -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;
     }
index fa4a8ae25aef164cf528413466411059d6852981..7f5942c5ae23f6c8ca74fe3fa3881a91eddaa73b 100644 (file)
@@ -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();
 
     }