ignite-646
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/300cc75e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/300cc75e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/300cc75e Branch: refs/heads/ignite-460 Commit: 300cc75e8cb6546e1537081583e55e7fae165893 Parents: cdbaaba Author: avinogradov <avinogra...@gridgain.com> Authored: Thu Apr 23 16:03:50 2015 +0300 Committer: avinogradov <avinogra...@gridgain.com> Committed: Thu Apr 23 16:03:50 2015 +0300 ---------------------------------------------------------------------- .../IgniteCacheP2pUnmarshallingErrorTest.java | 76 +++++++++----------- .../IgniteCacheP2pUnmarshallingErrorTxTest.java | 16 ++--- 2 files changed, 40 insertions(+), 52 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/300cc75e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java index 7edbff2..1f622bd 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTest.java @@ -100,11 +100,13 @@ public class IgniteCacheP2pUnmarshallingErrorTest extends IgniteCacheAbstractTes /** {@inheritDoc} */ @Override public void writeExternal(ObjectOutput out) throws IOException { - + out.writeObject(field); } /** {@inheritDoc} */ @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { + field = (String)in.readObject(); + if (readCnt.decrementAndGet() <= 0) { //will throw exception on backup node only throw new IOException("Class can not be unmarshalled"); } @@ -112,74 +114,60 @@ public class IgniteCacheP2pUnmarshallingErrorTest extends IgniteCacheAbstractTes } /** - * Test key 2. Unmarshalling always failed. + * Sends put atomically and handles fail. */ - public static class TestKeyAlwaysFailed extends TestKey { - /** Test key 2. */ - public TestKeyAlwaysFailed(String field) { - super(field); - } + protected void failAtomicPut() { + try { + jcache(0).put(new TestKey("1"), ""); - /** Test key 2. */ - public TestKeyAlwaysFailed() { + assert false : "p2p marshalling failed, but error response was not sent"; } - - /** {@inheritDoc} */ - @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException { - readCnt.decrementAndGet(); - throw new IOException("Class can not be unmarshalled"); //will throw exception on primary node + catch (CacheException e) { + assert X.hasCause(e, IOException.class); } + assert readCnt.get() == 0; //ensure we have read count as expected. } /** - * Tests that correct response will be sent to client node in case of unmarshalling failed. + * Sends get atomically and handles fail. */ - public void testResponseMessageOnUnmarshallingFailed() { - //Checking failed unmarshalling on primary node. - readCnt.set(1); - + protected void failAtomicGet() { try { - jcache(0).put(new TestKeyAlwaysFailed("1"), ""); //put will fail at primary node. + jcache(0).get(new TestKey("1")); assert false : "p2p marshalling failed, but error response was not sent"; } catch (CacheException e) { assert X.hasCause(e, IOException.class); } + } - assert readCnt.get() == 0; //put request should not be handled by backup node in case failed at primary. - - try { - assert jcache(0).get(new TestKeyAlwaysFailed("1")) == null; + /** + * Tests that correct response will be sent to client node in case of unmarshalling failed. + */ + public void testResponseMessageOnUnmarshallingFailed() { + //GridNearAtomicUpdateRequest unmarshalling failed test + readCnt.set(1); - assert false : "p2p marshalling failed, but error response was not sent"; - } - catch (CacheException e) { - assert X.hasCause(e, IOException.class); - } + failAtomicPut(); - assert grid(0).cachex().entrySet().size() == 0; + //GridNearGetRequest unmarshalling failed test + readCnt.set(1); - //Checking failed unmarshalling on backup node. - readCnt.set(2); //put request will be unmarshalled twice (at primary and at backup node). + failAtomicGet(); - try { - jcache(0).put(new TestKey("1"), ""); //put will fail at backup node only. + readCnt.set(100); - assert false : "p2p marshalling failed, but error response was not sent"; - } - catch (CacheException e) { - assert X.hasCause(e, IOException.class); - } + assert jcache(0).get(new TestKey("1")) == null; - assert readCnt.get() == 0; //put request should be handled by primary and backup node. + readCnt.set(2); - // Need to have no exception while unmarshalling getKeyResponse. - readCnt.set(3); //get response will me unmarshalled twice (request at primary node and response at client). + //GridDhtAtomicUpdateRequest unmarshalling failed test + failAtomicPut(); - assert jcache(0).get(new TestKey("1")) == null; + readCnt.set(100); - assert grid(0).cachex().entrySet().size() == 0; + assert jcache(0).get(new TestKey("1")) != null; } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/300cc75e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTxTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTxTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTxTest.java index cb6d444..ed3749f 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTxTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheP2pUnmarshallingErrorTxTest.java @@ -50,7 +50,7 @@ public class IgniteCacheP2pUnmarshallingErrorTxTest extends IgniteCacheP2pUnmars assert X.hasCause(e, IOException.class); } - assert readCnt.get() == 0; //ensure we have read counts as expected. + assert readCnt.get() == 0; //ensure we have read count as expected. } /** @@ -63,11 +63,11 @@ public class IgniteCacheP2pUnmarshallingErrorTxTest extends IgniteCacheP2pUnmars assert false : "p2p marshalling failed, but error response was not sent"; } - catch (IgniteException e) { - assert X.hasCause(e, IOException.class); - } +// catch (IgniteException e) { +// assert X.hasCause(e, IOException.class); +// } - assert readCnt.get() == 0; //ensure we have read counts as expected. + assert readCnt.get() == 0; //ensure we have read count as expected. } /** @@ -84,9 +84,9 @@ public class IgniteCacheP2pUnmarshallingErrorTxTest extends IgniteCacheP2pUnmars // // failOptimistic(); -// readCnt.set(1); -// -// failPessimictic(); + readCnt.set(100); + + failPessimictic(); } }