Switched KryoNamespace internal buffer to ByteBufferOutput
Change-Id: Iee3738bf0133440f4b6e695b9b92a9a2c8cc202f
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 55368ad..cb3d2bd 100644
--- a/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java
+++ b/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java
@@ -27,7 +27,6 @@
import com.esotericsoftware.kryo.io.ByteBufferInput;
import com.esotericsoftware.kryo.io.ByteBufferOutput;
import com.esotericsoftware.kryo.io.Input;
-import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.pool.KryoFactory;
import com.google.common.collect.ImmutableList;
@@ -44,6 +43,7 @@
* @see #serialize(Object)
*/
public static final int DEFAULT_BUFFER_SIZE = 1 * 1000 * 1000;
+ public static final int MAX_BUFFER_SIZE = 100 * 1000 * 1000;
private final ConcurrentLinkedQueue<Kryo> pool = new ConcurrentLinkedQueue<>();
private final ImmutableList<Pair<Class<?>, Serializer<?>>> registeredTypes;
@@ -188,7 +188,7 @@
* @return serialized bytes
*/
public byte[] serialize(final Object obj, final int bufferSize) {
- Output out = new Output(bufferSize);
+ ByteBufferOutput out = new ByteBufferOutput(bufferSize, MAX_BUFFER_SIZE);
Kryo kryo = getKryo();
try {
kryo.writeClassAndObject(out, obj);