Do not leak DataTree from backend actor
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / messages / ShardLeaderStateChanged.java
index 679d421eaf4d9e04f03b002fc7f4af2f6304a7c3..cbf2cf9e0fb189d5b2c3ea2e090dca6dd29d111a 100644 (file)
@@ -13,7 +13,7 @@ import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.cluster.notifications.LeaderStateChanged;
-import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree;
 
 /**
  * A local message derived from LeaderStateChanged containing additional Shard-specific info that is sent
@@ -23,11 +23,10 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
  * @author Thomas Pantelis
  */
 public class ShardLeaderStateChanged extends LeaderStateChanged {
-
-    private final DataTree localShardDataTree;
+    private final ReadOnlyDataTree localShardDataTree;
 
     public ShardLeaderStateChanged(@NonNull String memberId, @Nullable String leaderId,
-            @NonNull DataTree localShardDataTree, short leaderPayloadVersion) {
+            @NonNull ReadOnlyDataTree localShardDataTree, short leaderPayloadVersion) {
         super(memberId, leaderId, leaderPayloadVersion);
         this.localShardDataTree = requireNonNull(localShardDataTree);
     }
@@ -38,7 +37,7 @@ public class ShardLeaderStateChanged extends LeaderStateChanged {
         this.localShardDataTree = null;
     }
 
-    public @NonNull Optional<DataTree> getLocalShardDataTree() {
+    public @NonNull Optional<ReadOnlyDataTree> getLocalShardDataTree() {
         return Optional.ofNullable(localShardDataTree);
     }
 }