From 17211c982bcee83306af49b1b75c764dcb504b5d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sun, 24 Jul 2016 21:05:30 +0200 Subject: [PATCH 1/1] Apply SchemaContext to dataTree first DataTree.setSchemaContext() can fail, hence do not update the schema context before we propagate it to data tree. Change-Id: I0170133177ac74280da2ccc367b3c447f9d4cdc9 Signed-off-by: Robert Varga --- .../cluster/datastore/ShardDataTree.java | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java index 3e3d4cc20c..edf05f2a25 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java @@ -60,9 +60,10 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { final ShardDataChangeListenerPublisher dataChangeListenerPublisher, final String logContext) { dataTree = InMemoryDataTreeFactory.getInstance().create(treeType); updateSchemaContext(schemaContext); - this.treeChangeListenerPublisher = treeChangeListenerPublisher; - this.dataChangeListenerPublisher = dataChangeListenerPublisher; - this.logContext = logContext; + + this.treeChangeListenerPublisher = Preconditions.checkNotNull(treeChangeListenerPublisher); + this.dataChangeListenerPublisher = Preconditions.checkNotNull(dataChangeListenerPublisher); + this.logContext = Preconditions.checkNotNull(logContext); } public ShardDataTree(final SchemaContext schemaContext, final TreeType treeType) { @@ -79,9 +80,8 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { } void updateSchemaContext(final SchemaContext schemaContext) { - Preconditions.checkNotNull(schemaContext); - this.schemaContext = schemaContext; dataTree.setSchemaContext(schemaContext); + this.schemaContext = Preconditions.checkNotNull(schemaContext); } private ShardDataTreeTransactionChain ensureTransactionChain(final LocalHistoryIdentifier localHistoryIdentifier) { @@ -116,10 +116,9 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { dataChangeListenerPublisher.publishChanges(candidate, logContext); } - void notifyOfInitialData(DataChangeListenerRegistration>> listenerReg, Optional currentState) { - - if(currentState.isPresent()) { + void notifyOfInitialData(final DataChangeListenerRegistration>> listenerReg, final Optional currentState) { + if (currentState.isPresent()) { ShardDataChangeListenerPublisher localPublisher = dataChangeListenerPublisher.newInstance(); localPublisher.registerDataChangeListener(listenerReg.getPath(), listenerReg.getInstance(), listenerReg.getScope()); @@ -129,7 +128,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { void notifyOfInitialData(final YangInstanceIdentifier path, final DOMDataTreeChangeListener listener, final Optional currentState) { - if(currentState.isPresent()) { + if (currentState.isPresent()) { ShardDataTreeChangeListenerPublisher localPublisher = treeChangeListenerPublisher.newInstance(); localPublisher.registerTreeChangeListener(path, listener); localPublisher.publishChanges(currentState.get(), logContext); @@ -203,7 +202,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { return new SimpleShardDataTreeCohort(this, snapshot, transaction.getId()); } - public Optional> readNode(YangInstanceIdentifier path) { + public Optional> readNode(final YangInstanceIdentifier path) { return dataTree.takeSnapshot().readNode(path); } @@ -216,7 +215,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { } // FIXME: This should be removed, it violates encapsulation - public DataTreeCandidate commit(DataTreeModification modification) throws DataValidationFailedException { + public DataTreeCandidate commit(final DataTreeModification modification) throws DataValidationFailedException { modification.ready(); dataTree.validate(modification); DataTreeCandidateTip candidate = dataTree.prepare(modification); -- 2.36.6