Details
-
Bug
-
Status: Verified
-
Resolution: Done
-
None
-
None
-
None
-
None
-
Operating System: All
Platform: All
-
5446
-
Normal
Description
In the lispflowmapping project we're trying to add support for binary IPv4 and IPv6 address types to use internally to improve performance when we don't need a string representation of the addresses. (See lines 24-51 in https://git.opendaylight.org/gerrit/gitweb?p=lispflowmapping.git;a=blob;f=mappingservice/lisp-proto/src/main/yang/odl-lisp-proto.yang;h=58bf372611c9937ec6c9a373966a3c8275f548a4;hb=HEAD) However, when we do try to get a string representation of the binary object, we get the following stack trace:
2016-03-01 15:47:28,756 | ERROR | pool-28-thread-1 | DOMNotificationRouterEvent | 140 - org.opendaylight.controller.sal-broker-impl - 1.4.0.SNAPSHOT | Delivery of notification org.opendaylight.controller.md.sal.binding.impl.LazySerializedDOMNotification@352556f7 caused an error in listener org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter@1c213c0c java.lang.IllegalStateException: Could not construct instance at org.opendaylight.yangtools.binding.data.codec.impl.UnionTypeCodec.deserialize(UnionTypeCodec.java:71)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.0.SNAPSHOT] at org.opendaylight.yangtools.binding.data.codec.impl.LeafNodeCodecContext.deserializeObject(LeafNodeCodecContext.java:199)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.0.SNAPSHOT] at org.opendaylight.yangtools.binding.data.codec.impl.DataObjectCodecContext.getBindingChildValue(DataObjectCodecContext.java:329)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.0.SNAPSHOT] at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.getBindingData(LazyDataObject.java:122)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.0.SNAPSHOT] at org.opendaylight.yangtools.binding.data.codec.impl.LazyDataObject.invoke(LazyDataObject.java:69)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.0.SNAPSHOT] at com.sun.proxy.$Proxy86.getSourceRloc(Unknown Source)[237:org.opendaylight.lispflowmapping.mappingservice.lisp-proto:1.4.0.SNAPSHOT] at org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder$MappingRecordImpl.equals(MappingRecordBuilder.java:462)[237:org.opendaylight.lispflowmapping.mappingservice.lisp-proto:1.4.0.SNAPSHOT] at org.opendaylight.lispflowmapping.implementation.lisp.MapServer.handleMapRegister(MapServer.java:116)[240:org.opendaylight.lispflowmapping.mappingservice.implementation:1.4.0.SNAPSHOT] at org.opendaylight.lispflowmapping.implementation.LispMappingService.handleMapRegister(LispMappingService.java:156)[240:org.opendaylight.lispflowmapping.mappingservice.implementation:1.4.0.SNAPSHOT] at org.opendaylight.lispflowmapping.implementation.LispMappingService.onAddMapping(LispMappingService.java:184)[240:org.opendaylight.lispflowmapping.mappingservice.implementation:1.4.0.SNAPSHOT] at org.opendaylight.yangtools.yang.binding.util.NotificationListenerInvoker.invokeNotification(NotificationListenerInvoker.java:91)[70:org.opendaylight.mdsal.yang-binding:0.9.0.SNAPSHOT] at org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationListenerAdapter.onNotification(BindingDOMNotificationListenerAdapter.java:44)[142:org.opendaylight.controller.sal-binding-broker-impl:1.4.0.SNAPSHOT] at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouterEvent.deliverNotification(DOMNotificationRouterEvent.java:56)[140:org.opendaylight.controller.sal-broker-impl:1.4.0.SNAPSHOT] at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:68)[140:org.opendaylight.controller.sal-broker-impl:1.4.0.SNAPSHOT] at org.opendaylight.controller.md.sal.dom.broker.impl.DOMNotificationRouter$1.onEvent(DOMNotificationRouter.java:65)[140:org.opendaylight.controller.sal-broker-impl:1.4.0.SNAPSHOT] at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:128)[137:com.lmax.disruptor:3.3.2] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_74] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_74] at java.lang.Thread.run(Thread.java:745)[:1.8.0_74] Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedConstructorAccessor75.newInstance(Unknown Source)[:1.8.0_74] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[:1.8.0_74] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)[:1.8.0_74] at org.opendaylight.yangtools.binding.data.codec.impl.UnionTypeCodec.deserialize(UnionTypeCodec.java:69)[91:org.opendaylight.mdsal.binding-dom-codec:0.9.0.SNAPSHOT] ... 18 more Caused by: java.lang.IllegalArgumentException: com.google.common.io.BaseEncoding$DecodingException: Unrecognized character: [ at com.google.common.io.BaseEncoding.decode(BaseEncoding.java:228)[62:com.google.guava:18.0.0] at org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.Ipv4AddressBinary.getDefaultInstance(Ipv4AddressBinary.java:51)[237:org.opendaylight.lispflowmapping.mappingservice.lisp-proto:1.4.0.SNAPSHOT] at org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.IpAddressBinaryBuilder.getDefaultInstance(IpAddressBinaryBuilder.java:16)[237:org.opendaylight.lispflowmapping.mappingservice.lisp-proto:1.4.0.SNAPSHOT] at org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.IpAddressBinary.<init>(IpAddressBinary.java:37)[237:org.opendaylight.lispflowmapping.mappingservice.lisp-proto:1.4.0.SNAPSHOT] ... 22 more Caused by: com.google.common.io.BaseEncoding$DecodingException: Unrecognized character: [ at com.google.common.io.BaseEncoding$Alphabet.decode(BaseEncoding.java:503)[62:com.google.guava:18.0.0] at com.google.common.io.BaseEncoding$StandardBaseEncoding$2.read(BaseEncoding.java:675)[62:com.google.guava:18.0.0] at com.google.common.io.BaseEncoding.decodeChecked(BaseEncoding.java:245)[62:com.google.guava:18.0.0] at com.google.common.io.BaseEncoding.decode(BaseEncoding.java:226)[62:com.google.guava:18.0.0] ... 25 more