You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directmemory.apache.org by no...@apache.org on 2012/10/31 21:54:48 UTC
svn commit: r1404344 -
/directmemory/trunk/serializers/kryo/src/main/java/org/apache/directmemory/serialization/kryo/KryoSerializer.java
Author: noctarius
Date: Wed Oct 31 20:54:47 2012
New Revision: 1404344
URL: http://svn.apache.org/viewvc?rev=1404344&view=rev
Log:
DIRECTMEMORY-105 Fixed Kryo Serializer adapter isn't threadsafe
Modified:
directmemory/trunk/serializers/kryo/src/main/java/org/apache/directmemory/serialization/kryo/KryoSerializer.java
Modified: directmemory/trunk/serializers/kryo/src/main/java/org/apache/directmemory/serialization/kryo/KryoSerializer.java
URL: http://svn.apache.org/viewvc/directmemory/trunk/serializers/kryo/src/main/java/org/apache/directmemory/serialization/kryo/KryoSerializer.java?rev=1404344&r1=1404343&r2=1404344&view=diff
==============================================================================
--- directmemory/trunk/serializers/kryo/src/main/java/org/apache/directmemory/serialization/kryo/KryoSerializer.java (original)
+++ directmemory/trunk/serializers/kryo/src/main/java/org/apache/directmemory/serialization/kryo/KryoSerializer.java Wed Oct 31 20:54:47 2012
@@ -33,9 +33,6 @@ public final class KryoSerializer
private static final int BUFFER_SIZE = 1024;
private final Kryo kryo;
- private final byte[] buffer = new byte[ BUFFER_SIZE ];
- private final Output output = new Output( buffer, -1 );
- private final Input input = new Input( buffer );
public KryoSerializer()
{
@@ -54,6 +51,8 @@ public final class KryoSerializer
checkRegiterNeeded( clazz );
+ byte[] buffer = new byte[BUFFER_SIZE];
+ Output output = new Output( buffer, -1 );
output.setBuffer( buffer, -1 );
kryo.writeObject( output, obj );
return output.toBytes();
@@ -67,8 +66,10 @@ public final class KryoSerializer
throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException
{
checkRegiterNeeded( clazz );
- input.setBuffer( source);
- return kryo.readObject(input, clazz);
+ byte[] buffer = new byte[BUFFER_SIZE];
+ Input input = new Input( buffer );
+ input.setBuffer( source );
+ return kryo.readObject( input, clazz );
}
private void checkRegiterNeeded( Class<?> clazz )