Make sure to supply Kryo serializable set to constructor
Change-Id: Ida776fc3e7fbcacb604ae578865f2a280970101c
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java
index ca6728f..1f0f62d 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java
@@ -16,7 +16,6 @@
package org.onosproject.store.resource.impl;
import com.google.common.base.MoreObjects;
-import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets;
import org.onosproject.net.resource.DiscreteResource;
@@ -41,7 +40,7 @@
}
private GenericDiscreteResources(Set<DiscreteResource> values) {
- this.values = ImmutableSet.copyOf(values);
+ this.values = values;
}
// for serializer
@@ -62,7 +61,8 @@
@Override
public DiscreteResources difference(DiscreteResources other) {
if (other instanceof GenericDiscreteResources) {
- return of(Sets.difference(this.values(), other.values()));
+ // make sure that the set is serializable
+ return of(new LinkedHashSet<>(Sets.difference(this.values(), other.values())));
} else if (other instanceof EmptyDiscreteResources) {
return this;
}
@@ -84,7 +84,8 @@
@Override
public DiscreteResources add(DiscreteResources other) {
if (other instanceof GenericDiscreteResources) {
- return new GenericDiscreteResources(Sets.union(this.values(), other.values()));
+ // make sure that the set is serializable
+ return of(new LinkedHashSet<>(Sets.union(this.values(), other.values())));
} else if (other instanceof EmptyDiscreteResources) {
return this;
}