<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:55:34 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[CONTROLLER-1445] Having empty-containers make NormalizedNodeInputStreamReader go beserk</title>
                <link>https://jira.opendaylight.org/browse/CONTROLLER-1445</link>
                <project id="10113" key="CONTROLLER">controller</project>
                    <description>&lt;p&gt;Version Used : Lithium Stable release. Planning to repeat this on Beryllium master &#8211; will update on the same. &lt;br/&gt;
Cluster : Single-node - restart-with-persistent-data scenario&lt;/p&gt;

&lt;p&gt;Test Case (this case is very specific to Openflow inventory model, but this could be a generic issue)&lt;br/&gt;
1.	Create a group as following via RESTCONF in Config DS (please note that &#8216;Buckets&#8217; is made intentionally empty)&lt;br/&gt;
2.	Shutdown controller gracefully or ungracefully&lt;br/&gt;
3.	Restart the controller&lt;br/&gt;
4.	Try to read the group from inventory nodes Config DS&lt;br/&gt;
5.	Read Operation would hang&lt;br/&gt;
6.	All shards become unrecoverable and reach notinitialized state. All journals to be wiped and controller to be restarted clean-slate&lt;/p&gt;

&lt;p&gt;Empty-bucket group addition case&lt;br/&gt;
RESTCONF URL : &lt;br/&gt;
&lt;a href=&quot;http://localhost:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Operation : PUT&lt;/p&gt;

&lt;p&gt;Body :&lt;br/&gt;
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br/&gt;
&amp;lt;group xmlns=&quot;urn:opendaylight:flow:inventory&quot;&amp;gt;&lt;br/&gt;
    &amp;lt;group-type&amp;gt;group-indirect&amp;lt;/group-type&amp;gt;&lt;br/&gt;
    &amp;lt;buckets&amp;gt;&lt;br/&gt;
               &amp;lt;!&#8212;EMPTY CONTAINER &#61664;&lt;br/&gt;
     &amp;lt;/buckets&amp;gt;  &lt;br/&gt;
    &amp;lt;barrier&amp;gt;false&amp;lt;/barrier&amp;gt;&lt;br/&gt;
    &amp;lt;group-name&amp;gt;Foo1&amp;lt;/group-name&amp;gt;&lt;br/&gt;
    &amp;lt;group-id&amp;gt;1&amp;lt;/group-id&amp;gt;&lt;br/&gt;
&amp;lt;/group&amp;gt;&lt;/p&gt;

&lt;p&gt;Exception seen on the logs during RESTART (where NormalizedNodeInputStreamReader kicks-in)&lt;/p&gt;

&lt;p&gt;2015-11-05 04:10:44,317 | DEBUG | ult-dispatcher-7 | NormalizedNodeInputStreamReader  | 218 - org.opendaylight.controller.sal-clustering-commons - 1.2.1.SNAPSHOT | Muthu: Reading map entry node MAP_ENTRY_NODE qName (urn:opendaylight:inventory?revision=2013-08-19)node  keyValueMap &lt;/p&gt;
{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:1}
&lt;p&gt;2015-11-05 04:10:44,318 | ERROR | ult-dispatcher-7 | DataTreeCandidatePayload         | 226 - org.opendaylight.controller.sal-distributed-datastore - 1.2.1.SNAPSHOT | Muthu : Exception in SUBTREE_MODIFIED case of parseCandidate ModifiedDataTreeCandidateNode {}&lt;br/&gt;
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Revision &apos;urn:opendaylight:inventory&apos;is not in a supported format&lt;br/&gt;
               at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache.get(LocalCache.java:3937)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4830)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.QNameFactory.create(QNameFactory.java:36)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readQName(NormalizedNodeInputStreamReader.java:245)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNormalizedNodeInternal(NormalizedNodeInputStreamReader.java:142)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.addDataContainerChildren(NormalizedNodeInputStreamReader.java:399)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNodeIdentifierDependentNode(NormalizedNodeInputStreamReader.java:188)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNormalizedNodeInternal(NormalizedNodeInputStreamReader.java:151)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.addDataContainerChildren(NormalizedNodeInputStreamReader.java:399)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNodeIdentifierDependentNode(NormalizedNodeInputStreamReader.java:213)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNormalizedNodeInternal(NormalizedNodeInputStreamReader.java:151)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputStreamReader.readNormalizedNode(NormalizedNodeInputStreamReader.java:86)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.readNode(DataTreeCandidatePayload.java:156)&lt;span class=&quot;error&quot;&gt;&amp;#91;226:org.opendaylight.controller.sal-distributed-datastore:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.readChildren(DataTreeCandidatePayload.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;226:org.opendaylight.controller.sal-distributed-datastore:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.parseCandidate(DataTreeCandidatePayload.java:175)&lt;span class=&quot;error&quot;&gt;&amp;#91;226:org.opendaylight.controller.sal-distributed-datastore:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.DataTreeCandidatePayload.getCandidate(DataTreeCandidatePayload.java:203)&lt;span class=&quot;error&quot;&gt;&amp;#91;226:org.opendaylight.controller.sal-distributed-datastore:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.ShardRecoveryCoordinator.appendRecoveredLogEntry(ShardRecoveryCoordinator.java:70)&lt;span class=&quot;error&quot;&gt;&amp;#91;226:org.opendaylight.controller.sal-distributed-datastore:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.raft.RaftActorRecoverySupport.batchRecoveredLogEntry(RaftActorRecoverySupport.java:162)&lt;span class=&quot;error&quot;&gt;&amp;#91;219:org.opendaylight.controller.sal-akka-raft:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.raft.RaftActorRecoverySupport.onRecoveredApplyLogEntries(RaftActorRecoverySupport.java:141)&lt;span class=&quot;error&quot;&gt;&amp;#91;219:org.opendaylight.controller.sal-akka-raft:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.raft.RaftActorRecoverySupport.handleRecoveryMessage(RaftActorRecoverySupport.java:54)&lt;span class=&quot;error&quot;&gt;&amp;#91;219:org.opendaylight.controller.sal-akka-raft:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.raft.RaftActor.handleRecover(RaftActor.java:160)&lt;span class=&quot;error&quot;&gt;&amp;#91;219:org.opendaylight.controller.sal-akka-raft:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.common.actor.AbstractUntypedPersistentActor.onReceiveRecover(AbstractUntypedPersistentActor.java:48)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.Shard.onReceiveRecover(Shard.java:213)&lt;span class=&quot;error&quot;&gt;&amp;#91;226:org.opendaylight.controller.sal-distributed-datastore:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.UntypedPersistentActor$$anonfun$receiveRecover$1.applyOrElse(Eventsourced.scala:433)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.runtime.AbstractPartialFunction$mcVL$sp.apply$mcVL$sp(AbstractPartialFunction.scala:33)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:33)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.runtime.AbstractPartialFunction$mcVL$sp.apply(AbstractPartialFunction.scala:25)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Eventsourced$$anonfun$akka$persistence$Eventsourced$$recoveryBehavior$1.applyOrElse(Eventsourced.scala:168)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$class.runReceive(Recovery.scala:48)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.UntypedPersistentActor.runReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$State$$anonfun$processPersistent$1.apply(Recovery.scala:33)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$State$$anonfun$processPersistent$1.apply(Recovery.scala:33)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$class.withCurrentPersistent(Recovery.scala:185)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.UntypedPersistentActor.withCurrentPersistent(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$State$class.processPersistent(Recovery.scala:33)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$$anon$1.processPersistent(Recovery.scala:104)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$$anon$1.aroundReceive(Recovery.scala:110)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Recovery$class.aroundReceive(Recovery.scala:265)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.UntypedPersistentActor.akka$persistence$Eventsourced$$super$aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Eventsourced$$anon$1.aroundReceive(Eventsourced.scala:35)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.Eventsourced$class.aroundReceive(Eventsourced.scala:369)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.persistence.UntypedPersistentActor.aroundReceive(Eventsourced.scala:428)&lt;span class=&quot;error&quot;&gt;&amp;#91;216:com.typesafe.akka.persistence.experimental:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)&lt;span class=&quot;error&quot;&gt;&amp;#91;211:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.actor.ActorCell.invoke(ActorCell.scala:487)&lt;span class=&quot;error&quot;&gt;&amp;#91;211:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:254)&lt;span class=&quot;error&quot;&gt;&amp;#91;211:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.dispatch.Mailbox.run(Mailbox.scala:221)&lt;span class=&quot;error&quot;&gt;&amp;#91;211:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at akka.dispatch.Mailbox.exec(Mailbox.scala:231)&lt;span class=&quot;error&quot;&gt;&amp;#91;211:com.typesafe.akka.actor:2.3.10&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.pollAndExecAll(ForkJoinPool.java:1253)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1346)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)&lt;span class=&quot;error&quot;&gt;&amp;#91;208:org.scala-lang.scala-library:2.10.4.v20140209-180020-VFINAL-b66a39653b&amp;#93;&lt;/span&gt;&lt;br/&gt;
Caused by: java.lang.IllegalArgumentException: Revision &apos;urn:opendaylight:inventory&apos;is not in a supported format&lt;br/&gt;
               at org.opendaylight.yangtools.yang.common.QName.parseRevision(QName.java:351)&lt;span class=&quot;error&quot;&gt;&amp;#91;110:org.opendaylight.yangtools.yang-common:0.7.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.yangtools.yang.common.QName.create(QName.java:279)&lt;span class=&quot;error&quot;&gt;&amp;#91;110:org.opendaylight.yangtools.yang-common:0.7.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.yangtools.yang.common.QName.create(QName.java:127)&lt;span class=&quot;error&quot;&gt;&amp;#91;110:org.opendaylight.yangtools.yang-common:0.7.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.QNameFactory$1.load(QNameFactory.java:29)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.QNameFactory$1.load(QNameFactory.java:26)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               ... 54 more&lt;br/&gt;
Caused by: java.text.ParseException: Unparseable date: &quot;urn:opendaylight:inventory&quot;&lt;br/&gt;
               at java.text.DateFormat.parse(DateFormat.java:357)&lt;span class=&quot;error&quot;&gt;&amp;#91;:1.7.0_65&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.yangtools.yang.common.QName.parseRevision(QName.java:349)&lt;span class=&quot;error&quot;&gt;&amp;#91;110:org.opendaylight.yangtools.yang-common:0.7.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;br/&gt;
               ... 62 more&lt;br/&gt;
2015-11-05 04:10:44,319 | ERROR | ult-dispatcher-7 | DataTreeCandidatePayload         | 226 - org.opendaylight.controller.sal-distributed-datastore - 1.2.1.SNAPSHOT | Muthu: RotNode is NULL !!!&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: Linux&lt;br/&gt;
Platform: Other&lt;/p&gt;</environment>
        <key id="25999">CONTROLLER-1445</key>
            <summary>Having empty-containers make NormalizedNodeInputStreamReader go beserk</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Cannot Reproduce</resolution>
                                        <assignee username="tpantelis">Tom Pantelis</assignee>
                                    <reporter username="shuva.jyoti.kar.87@gmail.com">Shuva Jyoti Kar</reporter>
                        <labels>
                    </labels>
                <created>Fri, 6 Nov 2015 04:46:36 +0000</created>
                <updated>Tue, 17 Nov 2015 16:16:58 +0000</updated>
                            <resolved>Tue, 17 Nov 2015 16:16:58 +0000</resolved>
                                    <version>Beryllium</version>
                                                    <component>clustering</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                                                                <comments>
                            <comment id="51101" author="tony.tkacik@gmail.com" created="Fri, 6 Nov 2015 13:35:50 +0000"  >&lt;p&gt;Seems some code / binary change in clustering recovery changed binary format&lt;/p&gt;

&lt;p&gt;Revision &apos;urn:opendaylight:inventory&apos;is not in a supported format&lt;br/&gt;
               at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache.get(LocalCache.java:3937)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4830)&lt;span class=&quot;error&quot;&gt;&amp;#91;108:com.google.guava:18.0.0&amp;#93;&lt;/span&gt;&lt;br/&gt;
               at org.opendaylight.controller.cluster.datastore.node.utils.QNameFactory.create(QNameFactory.java:36)&lt;span class=&quot;error&quot;&gt;&amp;#91;218:org.opendaylight.controller.sal-clustering-commons:1.2.1.SNAPSHOT&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Points at trying to parse namespace as revision.&lt;/p&gt;</comment>
                            <comment id="51102" author="muthukumaran.k@ericsson.com" created="Fri, 6 Nov 2015 13:41:33 +0000"  >&lt;p&gt;Looks like what Tony says closely resembles debugging observation &lt;/p&gt;

&lt;p&gt;In NormalizedInputStreamReader.java&lt;/p&gt;

&lt;p&gt;    private String readCodedString() throws IOException {&lt;br/&gt;
        byte valueType = input.readByte();&lt;br/&gt;
        if(valueType == NormalizedNodeOutputStreamWriter.IS_CODE_VALUE) &lt;/p&gt;
{
            return codedStringMap.get(input.readInt());
        }
&lt;p&gt; else if(valueType == NormalizedNodeOutputStreamWriter.IS_STRING_VALUE) &lt;/p&gt;
{
            String value = input.readUTF().intern();
            codedStringMap.put(Integer.valueOf(codedStringMap.size()), value);
            return value;
        }

&lt;p&gt;        return null;&lt;br/&gt;
    }&lt;/p&gt;


&lt;p&gt;THIS METHOD ALWAYS RETURNS NULL - &lt;/p&gt;


&lt;p&gt;As a consequence, in below case, &lt;br/&gt;
localName becomes NULL&lt;br/&gt;
namespace becomes NULL&lt;br/&gt;
revision  becomes urn:opendaylight:inventory &lt;/p&gt;


&lt;p&gt;    private QName readQName() throws IOException {&lt;br/&gt;
        // Read in the same sequence of writing&lt;br/&gt;
        String localName = readCodedString();&lt;br/&gt;
        String namespace = readCodedString();&lt;br/&gt;
        String revision = readCodedString();&lt;/p&gt;

&lt;p&gt;        String qName;&lt;br/&gt;
        if(!Strings.isNullOrEmpty(revision)) &lt;/p&gt;
{
            qName = reusableStringBuilder.append(&apos;(&apos;).append(namespace).append(REVISION_ARG).
                        append(revision).append(&apos;)&apos;).append(localName).toString();
        }
&lt;p&gt; else &lt;/p&gt;
{
            qName = reusableStringBuilder.append(&apos;(&apos;).append(namespace).append(&apos;)&apos;).
                        append(localName).toString();
        }

&lt;p&gt;        reusableStringBuilder.delete(0, reusableStringBuilder.length());&lt;br/&gt;
        return QNameFactory.create(qName);&lt;br/&gt;
    }&lt;/p&gt;


&lt;p&gt;Since revision does not contain data, this results in  &lt;br/&gt;
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Revision &apos;urn:opendaylight:inventory&apos;is not in a supported format&lt;/p&gt;</comment>
                            <comment id="51103" author="tony.tkacik@gmail.com" created="Fri, 6 Nov 2015 14:09:36 +0000"  >&lt;p&gt;Could you attach payload with which you are observing error?&lt;/p&gt;

&lt;p&gt;Also is this reproducible on Beryllium master and released Lithium (NOT SRs)&lt;/p&gt;</comment>
                            <comment id="51104" author="muthukumaran.k@ericsson.com" created="Fri, 6 Nov 2015 14:23:17 +0000"  >&lt;p&gt;(In reply to Tony Tkacik from comment #3)&lt;br/&gt;
&amp;gt; Could you attach payload with which you are observing error?&lt;br/&gt;
&amp;gt; &lt;br/&gt;
&amp;gt; Also is this reproducible on Beryllium master and released Lithium (NOT SRs)&lt;/p&gt;


&lt;p&gt;Payload is following (only group needs to be created - no flows) :&lt;br/&gt;
===================================================================&lt;br/&gt;
RESTCONF URL : &lt;br/&gt;
&lt;a href=&quot;http://localhost:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8080/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Operation : PUT&lt;/p&gt;


&lt;p&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&amp;gt;&lt;br/&gt;
&amp;lt;group xmlns=&quot;urn:opendaylight:flow:inventory&quot;&amp;gt;&lt;br/&gt;
    &amp;lt;group-type&amp;gt;group-indirect&amp;lt;/group-type&amp;gt;&lt;br/&gt;
    &amp;lt;buckets&amp;gt;&lt;br/&gt;
               &amp;lt;!&#8212;EMPTY CONTAINER --&amp;gt;&lt;br/&gt;
     &amp;lt;/buckets&amp;gt;  &lt;br/&gt;
    &amp;lt;barrier&amp;gt;false&amp;lt;/barrier&amp;gt;&lt;br/&gt;
    &amp;lt;group-name&amp;gt;Foo1&amp;lt;/group-name&amp;gt;&lt;br/&gt;
    &amp;lt;group-id&amp;gt;1&amp;lt;/group-id&amp;gt;&lt;br/&gt;
&amp;lt;/group&amp;gt;&lt;/p&gt;

&lt;p&gt;Tested Release : Lithium Stable&lt;/p&gt;

&lt;p&gt;One observation is that NormalizedNodeInputStreamReader.java has no changes since Lithium Stable release. So, I suspect that it should be reproducible in Beryllium master too. &lt;/p&gt;

&lt;p&gt;I will verify and confirm as soon as possible with Beryllium&lt;/p&gt;</comment>
                            <comment id="51105" author="tpantelis" created="Mon, 9 Nov 2015 20:08:42 +0000"  >&lt;p&gt;I was not able to reproduce this on the latest Li SR3. I didn&apos;t install the entire openflowplugin but I copied the relevant yang models to my controller build. &lt;/p&gt;

&lt;p&gt;I first did PUT to &lt;a href=&quot;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;lt;node xmlns=&quot;urn:opendaylight:inventory&quot;&amp;gt;&lt;br/&gt;
  &amp;lt;id&amp;gt;openflow:1&amp;lt;/id&amp;gt;&lt;br/&gt;
&amp;lt;/node&amp;gt;&lt;/p&gt;

&lt;p&gt;Then I PUT to &lt;a href=&quot;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://localhost:8181/restconf/config/opendaylight-inventory:nodes/node/openflow:1/group/1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;lt;group xmlns=&quot;urn:opendaylight:flow:inventory&quot;&amp;gt;&lt;br/&gt;
  &amp;lt;group-type&amp;gt;group-indirect&amp;lt;/group-type&amp;gt;&lt;br/&gt;
  &amp;lt;buckets&amp;gt;&amp;lt;/buckets&amp;gt;&lt;br/&gt;
  &amp;lt;barrier&amp;gt;false&amp;lt;/barrier&amp;gt;&lt;br/&gt;
  &amp;lt;group-name&amp;gt;foo&amp;lt;/group-name&amp;gt;&lt;br/&gt;
  &amp;lt;group-id&amp;gt;1&amp;lt;/group-id&amp;gt;&lt;br/&gt;
&amp;lt;/group&amp;gt;&lt;/p&gt;

&lt;p&gt;On restart, the data recovered fine.&lt;/p&gt;

&lt;p&gt;According to the bug description, my steps look to be equivalent unless I missed something.&lt;/p&gt;

&lt;p&gt;Can you try to reproduce with Li SR3?&lt;/p&gt;</comment>
                            <comment id="51106" author="moraja@cisco.com" created="Tue, 17 Nov 2015 16:16:58 +0000"  >&lt;p&gt;Not an issue&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4590</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=4590]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10202" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Priority</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10312"><![CDATA[High]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02qm7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>