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 )