Details
-
Improvement
-
Status: Resolved
-
Resolution: Done
-
None
-
None
-
None
-
Operating System: Mac OS
Platform: PC
Description
I get this exception on the OSGI console:
2013-12-15 20:54:57.328 PST [pool-19-thread-1] ERROR o.o.c.s.b.i.c.d.BindingIndependentDataServiceConnector - Ommiting from BA transaction: /(urn:opendaylight:inventory?revision=2013-08-19)nodes/(urn:opendaylight:inventory?revision=2013-08-19)node[
{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}]/(urn:opendaylight:inventory?revision=2013-08-19)node-connector[
{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1:2}]/(urn:opendaylight:flow:inventory?revision=2013-08-19)configuration.
org.opendaylight.controller.sal.binding.impl.connect.dom.DeserializationException: java.lang.NullPointerException
at org.opendaylight.controller.sal.binding.dom.serializer.impl.RuntimeGeneratedMappingServiceImpl.tryDeserialization(RuntimeGeneratedMappingServiceImpl.java:381) ~[na:na]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.RuntimeGeneratedMappingServiceImpl.fromDataDom(RuntimeGeneratedMappingServiceImpl.java:367) ~[na:na]
at org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentDataServiceConnector.createDomToBindingTransaction(BindingIndependentDataServiceConnector.java:131) ~[na:na]
at org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentDataServiceConnector.access$700(BindingIndependentDataServiceConnector.java:35) ~[na:na]
at org.opendaylight.controller.sal.binding.impl.connect.dom.BindingIndependentDataServiceConnector$DomToBindingCommitHandler.requestCommit(BindingIndependentDataServiceConnector.java:354) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:76) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.service.TwoPhaseCommit.call(TwoPhaseCommit.java:31) ~[na:na]
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) ~[na:1.7.0_25]
at java.util.concurrent.FutureTask.run(FutureTask.java:166) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
Caused by: java.lang.NullPointerException: null
at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:333) ~[na:1.7.0_25]
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:988) ~[na:1.7.0_25]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.LazyGeneratedCodecRegistry.getClassForPath(LazyGeneratedCodecRegistry.java:194) ~[na:na]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.InstanceIdentifierCodecImpl._deserializePathArgument(InstanceIdentifierCodecImpl.java:108) ~[na:na]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.InstanceIdentifierCodecImpl.deserializePathArgument(InstanceIdentifierCodecImpl.java:263) ~[na:na]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.InstanceIdentifierCodecImpl.deserialize(InstanceIdentifierCodecImpl.java:82) ~[na:na]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.RuntimeGeneratedMappingServiceImpl$8.call(RuntimeGeneratedMappingServiceImpl.java:363) ~[na:na]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.RuntimeGeneratedMappingServiceImpl$8.call(RuntimeGeneratedMappingServiceImpl.java:359) ~[na:na]
at org.opendaylight.controller.sal.binding.dom.serializer.impl.RuntimeGeneratedMappingServiceImpl.tryDeserialization(RuntimeGeneratedMappingServiceImpl.java:376) ~[na:na]
... 11 common frames omitted
When attempting to PUT to URL: http://192.168.195.157:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/node-connector/openflow:1:2/configuration
Body:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration
xmlns="urn:opendaylight:flow:inventory">
<port-down>false</port-down>
<port-no-recv>false</port-no-recv>
<port-no-packet-in>false</port-no-packet-in>
<port-no-fwd>false</port-no-fwd>
</configuration>
When I trace it through I come to LazyGeneratedCodecRegistry.getClassForPath line 194 where:
path: SchemaPath [path=[(urn:opendaylight:inventory?revision=2013-08-19)nodes, (urn:opendaylight:inventory?revision=2013-08-19)node, (urn:opendaylight:inventory?revision=2013-08-19)node-connector, (urn:opendaylight:flow:inventory?revision=2013-08-19)configuration], absolute=true]
type: null
node: ContainerSchemaNodeImpl[qname=(urn:opendaylight:flow:inventory?revision=2013-08-19)configuration]
names: [(urn:opendaylight:inventory?revision=2013-08-19)nodes, (urn:opendaylight:inventory?revision=2013-08-19)node, (urn:opendaylight:inventory?revision=2013-08-19)node-connector, (urn:opendaylight:flow:inventory?revision=2013-08-19)configuration]
and so the line:
WeakReference<Class> weakRef = typeToClass.get(type);
Throws the NPE because type is null.
This is all against:
https://git.opendaylight.org/gerrit/#/c/3740/1 - controller
https://git.opendaylight.org/gerrit/#/c/3741/1 - openflowplugin