Uploaded image for project: 'controller'
  1. controller
  2. CONTROLLER-101

NPE due to failure to look up augmentation for configuration on node-connector with flow-capable-node-connector augmentation.

    XMLWordPrintable

Details

    • Improvement
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • mdsal
    • 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

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            tony.tkacik@gmail.com Tony Tkacik
            hagbard Ed Warnicke
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: