[CONTROLLER-439] sample l2switch fails to write flow in new data store Created: 01/May/14  Updated: 25/Jul/23  Resolved: 19/May/14

Status: Resolved
Project: controller
Component/s: mdsal
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Amit Mandke Assignee: Amit Mandke
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Mac OS
Platform: PC


External issue ID: 935

 Description   

Following exception is thrown at the time a flow is being added in l2switch sample:

[_id=Uri [_value=openflow:64308846240835:2]]]]}], _payload=[0, -95, -79, -63, -47, -31, 0, -94, -78, -62, -46, -30, 8, 0, 69, 0, 0, 84, 0, 0, 64, 0, 64, 1, 37, -33, 10, 0, 0, 102, 10, 0, 0, 101, 8, 0, -41, 56, 11, -85, 14, -108, 86, -114, 97, 83, 0, 0, 0, 0, -!
119, -45, 6, 0, 0, 0, 0, 0, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], augmentation=[]]
java.lang.NullPointerException: List node (urn:opendaylight:flow:inventory?revision=2013-08-19)instruction MUST contain leaf (urn:opendaylight:flow:inventory?revision=2013-08-19)order with value.
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:235) ~[bundlefile:na]
at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$ListItemNormalization.createBuilder(DataNormalizationOperation.java:267) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationOperation.java:166) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationOperation.java:195) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationOperation.java:192) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOperation.normalize(DataNormalizationOperation.java:195) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.toNormalized(DataNormalizer.java:115) ~[na:na]
at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.toNormalized(DataNormalizer.java:76) ~[na:na]
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCodec.java:62) ~[na:na]
at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCodec.java:55) ~[na:na]
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransaction.doPutWithEnsureParents(AbstractForwardedTransaction.java:108) ~[na:na]
at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker$ForwardedBackwardsCompatibleTransacion.putConfigurationData(ForwardedBackwardsCompatibleDataBroker.java:236) ~[na:na]
at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker$ForwardedBackwardsCompatibleTransacion.putConfigurationData(ForwardedBackwardsCompatibleDataBroker.java:195) ~[na:na]
at org.opendaylight.controller.sample.l2switch.md.flow.FlowWriterServiceImpl.writeFlowToConfigData(FlowWriterServiceImpl.java:283) ~[bundlefile:na]
at org.opendaylight.controller.sample.l2switch.md.flow.FlowWriterServiceImpl.addMacToMacFlow(FlowWriterServiceImpl.java:112) ~[bundlefile:na]
at org.opendaylight.controller.sample.l2switch.md.flow.FlowWriterServiceImpl.addMacToMacFlowsUsingShortestPath(FlowWriterServiceImpl.java:146) ~[bundlefile:na]
at org.opendaylight.controller.sample.l2switch.md.packet.PacketHandler.handleEthernetPacket(PacketHandler.java:129) ~[bundlefile:na]
at org.opendaylight.controller.sample.l2switch.md.packet.PacketHandler.onPacketReceived(PacketHandler.java:87) ~[bundlefile:na]
at org.opendaylight.controller.sample.l2switch.md.packet.PacketHandler$$Broker$ListenerInvoker.onNotification(PacketHandler$$Broker$ListenerInvoker.java) [bundlefile:na]
at org.opendaylight.controller.sal.binding.impl.NotifyTask.call(NotifyTask.java:59) [bundlefile:na]
at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_55]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_55]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_55]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_55]



 Comments   
Comment by Amit Mandke [ 01/May/14 ]

This is due to strict checking in new data store against the model during the creation of instruction and action. Key 'order' needs to be present with value.

Following fix is added.

https://git.opendaylight.org/gerrit/#/c/6639/

Generated at Wed Feb 07 19:53:01 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.