Check TP type rather than doing a blind cast 69/84569/3
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 22 Sep 2019 01:26:22 +0000 (03:26 +0200)
committerStephen Kitt <skitt@redhat.com>
Mon, 23 Sep 2019 07:54:46 +0000 (07:54 +0000)
commitf2a10b7e3c9f9150d8a5afb4a2027bbc6518ac19
treeef029d1d6798babc637a55c7fd3ffb33bef92170
parent1a18fc702b5ae1fec8747f7a31151bd553e59346
Check TP type rather than doing a blind cast

Here we have a blind cast, which does not go through:

[main] WARN org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactUtils - Failed to add to Transaction Histroy
java.lang.ClassCastException: org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint$$$codecImpl cannot be cast to org.opendaylight.ovsdb.schema.hardwarevtep.PhysicalLocator
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactUtils.addLocatorToTransactionHistory(TransactUtils.java:270)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactUtils.createPhysicalLocatorSet(TransactUtils.java:139)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand.setLocatorSet(McastMacsRemoteUpdateCommand.java:135)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand.doDeviceTransaction(McastMacsRemoteUpdateCommand.java:93)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand.doDeviceTransaction(McastMacsRemoteUpdateCommand.java:1)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.AbstractTransactCommand.processDependencies(AbstractTransactCommand.java:125)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand.onConfigUpdate(McastMacsRemoteUpdateCommand.java:78)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand.updateMcastMacRemote(McastMacsRemoteUpdateCommand.java:65)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.McastMacsRemoteUpdateCommand.execute(McastMacsRemoteUpdateCommand.java:55)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactCommandAggregator.execute(TransactCommandAggregator.java:73)
at org.opendaylight.ovsdb.hwvtepsouthbound.transact.TransactInvokerImpl.invoke(TransactInvokerImpl.java:41)
at org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepConnectionInstance.transact(HwvtepConnectionInstance.java:132)
at org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepConnectionInstance.transact(HwvtepConnectionInstance.java:104)
at org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepDataChangeListener.updateData(HwvtepDataChangeListener.java:178)
at org.opendaylight.ovsdb.hwvtepsouthbound.HwvtepDataChangeListener.onDataTreeChanged(HwvtepDataChangeListener.java:81)
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:43)

Rather than incurring this, perform an instanceof check and debug
ignored data.

Change-Id: Icc3d1abe5afd2b9b60c7632606551904b7d27af7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
hwvtepsouthbound/hwvtepsouthbound-impl/src/main/java/org/opendaylight/ovsdb/hwvtepsouthbound/transact/TransactUtils.java