[NETCONF-1235] NPE on topology PUT device without credentials Created: 26/Jan/24  Updated: 26/Jan/24

Status: Open
Project: netconf
Component/s: netconf-topology
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: Ivan Hrasko Assignee: Ivan Hrasko
Resolution: Unresolved Votes: 0
Labels: pick-next, pt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Invoke request:

PUT http://localhost:8181/rests/data/network-topology:network-topology/topology=topology-netconf/node=netopeer3

with payload:

{
  "node": [
    {
      "node-id": "netopeer3",
      "netconf-node-topology:schemaless": false,
      "netconf-node-topology:port": 17830,
      "netconf-node-topology:tcp-only": false,
      "netconf-node-topology:keepalive-delay": 0,
      "netconf-node-topology:host": "127.0.0.1"
    }
  ]
} 

You get an error in karaf console:

15:31:01.187 ERROR [opendaylight-cluster-data-notification-dispatcher-43] member-1-shard-topology-config: Error notifying listener org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataTreeChangeListenerAdapter@55553971
java.lang.NullPointerException: Cannot invoke "Object.getClass()" because "credentials" is null
        at org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactoryImpl.setSshParametersFromCredentials(NetconfClientConfigurationBuilderFactoryImpl.java:120) ~[bundleFile:?]
        at org.opendaylight.netconf.topology.spi.NetconfClientConfigurationBuilderFactoryImpl.createClientConfigurationBuilder(NetconfClientConfigurationBuilderFactoryImpl.java:75) ~[bundleFile:?]
        at org.opendaylight.netconf.topology.spi.NetconfNodeHandler.<init>(NetconfNodeHandler.java:198) ~[bundleFile:?]
        at org.opendaylight.netconf.topology.spi.AbstractNetconfTopology.lockedEnsureNode(AbstractNetconfTopology.java:123) ~[bundleFile:?]
        at org.opendaylight.netconf.topology.spi.AbstractNetconfTopology.ensureNode(AbstractNetconfTopology.java:90) ~[bundleFile:?]
        at org.opendaylight.netconf.topology.impl.NetconfTopologyImpl.ensureNode(NetconfTopologyImpl.java:143) ~[?:?]
        at org.opendaylight.netconf.topology.impl.NetconfTopologyImpl.onDataTreeChanged(NetconfTopologyImpl.java:129) ~[?:?]
        at org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:44) ~[bundleFile:?]
        at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataTreeChanged(DataTreeChangeListenerActor.java:90) ~[bundleFile:?]
        at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:45) ~[bundleFile:?]
        at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:24) [bundleFile:?]
        at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:20) [bundleFile:?]
        at scala.PartialFunction.applyOrElse(PartialFunction.scala:214) [bundleFile:?]
        at scala.PartialFunction.applyOrElse$(PartialFunction.scala:213) [bundleFile:?]
        at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:20) [bundleFile:?]
        at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:269) [bundleFile:?]
        at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:270) [bundleFile:?]
        at akka.actor.Actor.aroundReceive(Actor.scala:537) [bundleFile:?]
        at akka.actor.Actor.aroundReceive$(Actor.scala:535) [bundleFile:?]
        at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:220) [bundleFile:?]
        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:579) [bundleFile:?]
        at akka.actor.ActorCell.invoke(ActorCell.scala:547) [bundleFile:?]
        at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270) [bundleFile:?]
        at akka.dispatch.Mailbox.run(Mailbox.scala:231) [bundleFile:?]
        at akka.dispatch.Mailbox.exec(Mailbox.scala:243) [bundleFile:?]
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373) [?:?]
        at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182) [?:?]
        at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655) [?:?]
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622) [?:?]
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165) [?:?]

We expect no NPEs. Fix this.


Generated at Wed Feb 07 20:17:00 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.