From: Michael Vorburger Date: Fri, 14 Dec 2018 15:37:16 +0000 (+0100) Subject: fix NPE in odl-mdsal-trace X-Git-Tag: release/neon~38 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=ce85ee4b6d9334bd0b67b0bac1d0cc3565e4ea10 fix NPE in odl-mdsal-trace It (probably) broke back in Commit a6286576cf76bce93009c58b88ba1e949ef717af Change-Id: Id82a79e8e430665f6fb5433ed7bab858044eacbe. This NPE only occurs if mdsaltrace has non-empty write-watches (as it does in the initial default mdsaltrace_config.xml). The following commit adds a non-regression test for this. Caused by: java.lang.NullPointerException at org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext.getCodecContextNode(BindingCodecContext.java:152) at org.opendaylight.mdsal.binding.dom.codec.impl.InstanceIdentifierCodec.deserialize(InstanceIdentifierCodec.java:36) at org.opendaylight.mdsal.binding.dom.codec.impl.BindingNormalizedNodeCodecRegistry.fromYangInstanceIdentifier(BindingNormalizedNodeCodecRegistry.java:101) at org.opendaylight.mdsal.binding.dom.adapter.BindingToNormalizedNodeCodec.fromYangInstanceIdentifier(BindingToNormalizedNodeCodec.java:215) at Proxyabf4ea17_f2e5_4773_bd89_e4f8393036df.fromYangInstanceIdentifier(Unknown Source) at Proxy1038cd39_b88e_4023_8cb1_af39f6d6feb2.fromYangInstanceIdentifier(Unknown Source) at org.opendaylight.controller.md.sal.trace.dom.impl.TracingBroker.toPathString(TracingBroker.java:270) at org.opendaylight.controller.md.sal.trace.dom.impl.TracingBroker.toPathString(TracingBroker.java:264) at org.opendaylight.controller.md.sal.trace.dom.impl.TracingBroker$Watch.eventIsOfInterest(TracingBroker.java:167) at org.opendaylight.controller.md.sal.trace.dom.impl.TracingBroker.isWriteWatched(TracingBroker.java:248) at org.opendaylight.controller.md.sal.trace.dom.impl.AbstractTracingWriteTransaction.recordOp(AbstractTracingWriteTransaction.java:37) at org.opendaylight.controller.md.sal.trace.dom.impl.AbstractTracingWriteTransaction.(AbstractTracingWriteTransaction.java:32) at org.opendaylight.controller.md.sal.trace.dom.impl.TracingWriteTransaction.(TracingWriteTransaction.java:24) JIRA: CONTROLLER-1877 Change-Id: Ia9fbf69bc1c3553e929a045146a3610bce72cd96 Signed-off-by: Michael Vorburger --- diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/AbstractTracingWriteTransaction.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/AbstractTracingWriteTransaction.java index 553cbfb2a7..acd9f9154d 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/AbstractTracingWriteTransaction.java +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/AbstractTracingWriteTransaction.java @@ -34,7 +34,7 @@ abstract class AbstractTracingWriteTransaction implements DOMDataWriteTransactio private void recordOp(LogicalDatastoreType store, YangInstanceIdentifier yiid, String method, NormalizedNode node) { - if (!tracingBroker.isWriteWatched(yiid, store)) { + if (yiid != null && !tracingBroker.isWriteWatched(yiid, store)) { return; }