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()); + } }
