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 e87c6bfbaa..2aca86dccb 100644 --- a/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java +++ b/utils/misc/src/main/java/org/onlab/util/KryoNamespace.java @@ -33,6 +33,8 @@ import org.apache.commons.lang3.tuple.Pair; import org.objenesis.strategy.StdInstantiatorStrategy; import org.slf4j.Logger; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.nio.ByteBuffer; @@ -303,11 +305,12 @@ public final class KryoNamespace implements KryoFactory, KryoPool { * @return serialized bytes */ public byte[] serialize(final Object obj, final int bufferSize) { - Output out = new Output(bufferSize, MAX_BUFFER_SIZE); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(bufferSize); + Output out = new Output(outputStream); return pool.run(kryo -> { kryo.writeClassAndObject(out, obj); out.flush(); - return out.toBytes(); + return outputStream.toByteArray(); }); } @@ -364,7 +367,7 @@ public final class KryoNamespace implements KryoFactory, KryoPool { * @return deserialized Object */ public T deserialize(final byte[] bytes) { - Input in = new Input(bytes); + Input in = new Input(new ByteArrayInputStream(bytes)); Kryo kryo = borrow(); try { @SuppressWarnings("unchecked")