[MDSAL-81] IllegalArgumentException thrown when deserializing IP v4 address Created: 23/Apr/15  Updated: 09/Mar/18  Resolved: 21/Jun/16

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

Type: Bug
Reporter: Moiz Raja Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 3055

 Description   

I am not sure of exact steps to reproduce but I believe this happens when running the openflow integration tests. This issue is observed in a build based on Helium but may also be present in a Post-Helium.

2015-04-22 21:36:40.978 GMT-00:00 [opendaylight-cluster-data-akka.actor.default-dispatcher-44] ERROR o.o.c.c.d.DataChangeListener - Error notifying listener org.opendaylight.controller.frm.impl.FlowForwarder$TableForwarder
java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException
at org.opendaylight.yangtools.binding.data.codec.impl.EncapsulatedValueCodec.deserialize(EncapsulatedValueCodec.java:51) [org.opendaylight.yangtools.binding-data-codec:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.LeafNodeCodecContext.dataFromNormalizedNode(LeafNodeCodecContext.java:48) [org.opendaylight.yangtools.binding-data-codec:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getBindingChildValue(DataObjectCodecContext.java:272) [org.opendaylight.yangtools.binding-data-codec:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.getBindingData(LazyDataObject.java:117) [org.opendaylight.yangtools.binding-data-codec:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.invoke(LazyDataObject.java:64) [org.opendaylight.yangtools.binding-data-codec:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at com.sun.proxy.$Proxy234.getArpSourceTransportAddress(Unknown Source) [na:na]
at org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatch$Broker$Codec$DOM.toDomStatic(ArpMatch$Broker$Codec$DOM.java) [org.opendaylight.controller.model.flow-base:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatch$Broker$Codec$DOM.serialize(ArpMatch$Broker$Codec$DOM.java) [org.opendaylight.controller.model.flow-base:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$DispatchChoiceCodecImpl.serialize(LazyGeneratedCodecRegistry.java:943) [org.opendaylight.yangtools.binding-generator-impl:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Layer3Match$Broker$Codec$DOM.toDomStatic(Layer3Match$Broker$Codec$DOM.java) [org.opendaylight.controller.model.flow-base:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match$Broker$Codec$DOM.toDomStatic(Match$Broker$Codec$DOM.java) [org.opendaylight.controller.model.flow-base:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInput$Broker$Codec$DOM.toDomStatic(RemoveFlowInput$Broker$Codec$DOM.java) [org.opendaylight.controller.model.flow-service:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInput$Broker$Codec$DOM.serialize(RemoveFlowInput$Broker$Codec$DOM.java) [org.opendaylight.controller.model.flow-service:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$IntermediateCodec.serialize(LazyGeneratedCodecRegistry.java:513) [org.opendaylight.yangtools.binding-generator-impl:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$DataContainerCodecImpl.serialize(LazyGeneratedCodecRegistry.java:579) [org.opendaylight.yangtools.binding-generator-impl:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl.toCompositeNodeImpl(RuntimeGeneratedMappingServiceImpl.java:215) [org.opendaylight.yangtools.binding-generator-impl:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl.toDataDom(RuntimeGeneratedMappingServiceImpl.java:188) [org.opendaylight.yangtools.binding-generator-impl:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.controller.sal.binding.impl.connect.dom.RpcInvocationStrategy.forwardToDomBroker(RpcInvocationStrategy.java:95) [na:na]
at org.opendaylight.controller.sal.binding.impl.connect.dom.DomToBindingRpcForwarder.invoke(DomToBindingRpcForwarder.java:183) [na:na]
at com.sun.proxy.$Proxy99.removeFlow(Unknown Source) [na:na]
at org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService$$Broker$Router.removeFlow(SalFlowService$$Broker$Router.java) [org.opendaylight.controller.model.flow-service:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService$$Broker$DirectProxy.removeFlow(SalFlowService$$Broker$DirectProxy.java) [org.opendaylight.controller.model.flow-service:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.controller.frm.impl.FlowForwarder$TableForwarder.removeFlow(FlowForwarder.java:269) [na:na]
at org.opendaylight.controller.frm.impl.FlowForwarder$TableForwarder.onDataChanged(FlowForwarder.java:246) [na:na]
at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker$TranslatingDataChangeInvoker.onDataChanged(AbstractForwardedDataBroker.java:146) [na:na]
at org.opendaylight.controller.cluster.datastore.DataChangeListener.dataChanged(DataChangeListener.java:66) [org.opendaylight.controller.sal-distributed-datastore:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataChangeListener.handleReceive(DataChangeListener.java:39) [org.opendaylight.controller.sal-distributed-datastore:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34) [org.opendaylight.controller.sal-clustering-commons:1.1.1.Helium-SR1-00004_1-SNAPSHOT]
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167) [com.typesafe.akka.actor:2.3.4]
at akka.actor.Actor$class.aroundReceive(Actor.scala:465) [com.typesafe.akka.actor:2.3.4]
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97) [com.typesafe.akka.actor:2.3.4]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) [com.typesafe.akka.actor:2.3.4]
at akka.actor.ActorCell.invoke(ActorCell.scala:487) [com.typesafe.akka.actor:2.3.4]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) [com.typesafe.akka.actor:2.3.4]
at akka.dispatch.Mailbox.run(Mailbox.scala:220) [com.typesafe.akka.actor:2.3.4]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) [com.typesafe.akka.actor:2.3.4]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b]
Caused by: java.lang.reflect.InvocationTargetException: null
at sun.reflect.GeneratedConstructorAccessor150.newInstance(Unknown Source) [na:na]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [na:1.7.0_75]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526) [na:1.7.0_75]
at org.opendaylight.yangtools.binding.data.codec.impl.EncapsulatedValueCodec.deserialize(EncapsulatedValueCodec.java:49) [org.opendaylight.yangtools.binding-data-codec:0.6.3.Helium-SR1-00004_1-SNAPSHOT]
... 39 common frames omitted
Caused by: java.lang.IllegalArgumentException: Supplied value "192.168.4.1" does not match any of the permitted patterns [^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.)

{3}

([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$]
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119) [com.google.guava:14.0.1]
at org.opendaylight.yang.gen.v



 Comments   
Comment by Tony Tkacik [ 27/Apr/15 ]

This seems on Restconf Ipv4 address was used in place where IPv4 Prefix should be used,

Helium Restconf does not use regexes to validate input on master restconf does check inputs.

Comment by Robert Varga [ 13/Nov/15 ]

Is this reproducible in Lithium?

Comment by Robert Varga [ 21/Jun/16 ]

No response. The exception points to method name mismatch, which was corrected as part of a different bug. If it reproduces, please reopen.

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