Add some serializer related sanity check
Change-Id: I5ebdde41f5528b5bad0c704b11c191afed45691e
diff --git a/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java b/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java
index 9977e35..f5d2f9b 100644
--- a/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java
+++ b/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java
@@ -15,6 +15,8 @@
*/
package org.onlab.util;
+import static org.slf4j.LoggerFactory.getLogger;
+
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
@@ -22,6 +24,7 @@
import java.util.List;
import org.apache.commons.lang3.tuple.Pair;
+import org.slf4j.Logger;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.Serializer;
@@ -58,6 +61,8 @@
*/
public static final int INITIAL_ID = 11;
+ private static final Logger log = getLogger(KryoNamespace.class);
+
private final KryoPool pool = new KryoPool.Builder(this)
.softReferences()
@@ -101,6 +106,12 @@
*/
public Builder nextId(final int id) {
if (!types.isEmpty()) {
+ if (id != FLOATING_ID && id < blockHeadId + types.size()) {
+
+ log.warn("requested nextId {} could potentially overlap" +
+ "with existing registrations {}+{} ",
+ id, blockHeadId, types.size());
+ }
blocks.add(new RegistrationBlock(this.blockHeadId, types));
types = new ArrayList<>();
}