Do not leak DataTree from backend actor
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / shardmanager / ShardManagerSnapshot.java
index d784996bac98489d582ee30b942c288ea9d6d1b9..d3a50fcec9e46e12fce1023c9ab0f41885bba709 100644 (file)
@@ -5,23 +5,26 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.controller.cluster.datastore.shardmanager;
 
 import com.google.common.collect.ImmutableList;
 import java.io.Serializable;
+import java.util.Collections;
 import java.util.List;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
+
 
 /**
  * Persisted data of the ShardManager.
+ *
+ * @deprecated Use {@link org.opendaylight.controller.cluster.datastore.persisted.ShardManagerSnapshot} instead.
  */
-// FIXME: make this package-protected once forShardList is removed.
+@Deprecated
 public final class ShardManagerSnapshot implements Serializable {
     private static final long serialVersionUID = 1L;
     private final List<String> shardList;
 
-    ShardManagerSnapshot(final @Nonnull List<String> shardList) {
+    ShardManagerSnapshot(final @NonNull List<String> shardList) {
         this.shardList = ImmutableList.copyOf(shardList);
     }
 
@@ -36,10 +39,15 @@ public final class ShardManagerSnapshot implements Serializable {
      *             org.opendaylight.controller.cluster.datastore.ShardManagerSnapshot is removed.
      */
     @Deprecated
-    public static ShardManagerSnapshot forShardList(final @Nonnull List<String> shardList) {
+    public static ShardManagerSnapshot forShardList(final @NonNull List<String> shardList) {
         return new ShardManagerSnapshot(shardList);
     }
 
+    private Object readResolve() {
+        return new org.opendaylight.controller.cluster.datastore.persisted.ShardManagerSnapshot(shardList,
+                Collections.emptyMap());
+    }
+
     @Override
     public String toString() {
         return "ShardManagerSnapshot [ShardList = " + shardList + " ]";