Repository: apex-core
Updated Branches:
  refs/heads/master 891ed3ae9 -> c97dd7ccc


APEXCORE-525 return correct instance object from 
DefaultStatefulStreamCodec.newInstance


Project: http://git-wip-us.apache.org/repos/asf/apex-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/apex-core/commit/c97dd7cc
Tree: http://git-wip-us.apache.org/repos/asf/apex-core/tree/c97dd7cc
Diff: http://git-wip-us.apache.org/repos/asf/apex-core/diff/c97dd7cc

Branch: refs/heads/master
Commit: c97dd7ccc495e7ac17e263ea82338a06987aa435
Parents: 891ed3a
Author: Tushar R. Gosavi <[email protected]>
Authored: Thu Nov 24 22:46:28 2016 +0530
Committer: Vlad Rozov <[email protected]>
Committed: Mon Nov 28 21:40:31 2016 -0800

----------------------------------------------------------------------
 .../stram/codec/DefaultStatefulStreamCodec.java        |  6 +++++-
 .../stram/codec/DefaultStatefulStreamCodecTest.java    | 13 +++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/apex-core/blob/c97dd7cc/engine/src/main/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodec.java
----------------------------------------------------------------------
diff --git 
a/engine/src/main/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodec.java
 
b/engine/src/main/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodec.java
index 20460de..094c2e2 100644
--- 
a/engine/src/main/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodec.java
+++ 
b/engine/src/main/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodec.java
@@ -232,7 +232,11 @@ public class DefaultStatefulStreamCodec<T> extends Kryo 
implements StatefulStrea
   @Override
   public DefaultStatefulStreamCodec<T> newInstance()
   {
-    return new DefaultStatefulStreamCodec<>();
+    try {
+      return getClass().newInstance();
+    } catch (InstantiationException | IllegalAccessException e) {
+      throw new RuntimeException("Unable to create new stateful streamcodec 
object", e);
+    }
   }
 
   private static final Logger logger = 
LoggerFactory.getLogger(DefaultStatefulStreamCodec.class);

http://git-wip-us.apache.org/repos/asf/apex-core/blob/c97dd7cc/engine/src/test/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodecTest.java
----------------------------------------------------------------------
diff --git 
a/engine/src/test/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodecTest.java
 
b/engine/src/test/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodecTest.java
index c7a7aa0..42ac5dc 100644
--- 
a/engine/src/test/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodecTest.java
+++ 
b/engine/src/test/java/com/datatorrent/stram/codec/DefaultStatefulStreamCodecTest.java
@@ -214,4 +214,17 @@ public class DefaultStatefulStreamCodecTest
     }
   }
 
+  static class NoNewInstanceStatefulStreamCodec<T> extends 
DefaultStatefulStreamCodec<T>
+  {
+
+  }
+
+  @Test
+  public void testNewInstanceMethod()
+  {
+    NoNewInstanceStatefulStreamCodec codec = new 
NoNewInstanceStatefulStreamCodec();
+    DefaultStatefulStreamCodec newCodec = codec.newInstance();
+    Assert.assertNotEquals("Codec and newCodec are not same ", codec, 
newCodec);
+    Assert.assertEquals("Class of codec and newCodec is same ", 
newCodec.getClass(), codec.getClass());
+  }
 }

Reply via email to