Repository: incubator-ignite Updated Branches: refs/heads/ignite-648 7df60149e -> 9fa7acfc3
# ignite-648: add marshaller check Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9fa7acfc Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9fa7acfc Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9fa7acfc Branch: refs/heads/ignite-648 Commit: 9fa7acfc3bebb8a00fc2b65f1db1f3f790b28f27 Parents: 7df6014 Author: ashutak <ashu...@gridgain.com> Authored: Thu Jul 9 21:02:13 2015 +0300 Committer: ashutak <ashu...@gridgain.com> Committed: Thu Jul 9 21:02:13 2015 +0300 ---------------------------------------------------------------------- .../junits/multijvm/IgniteNodeRunner.java | 25 ++++++++++++++++++++ 1 file changed, 25 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9fa7acfc/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java index 22411e8..2703d2b 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java @@ -30,6 +30,7 @@ import org.apache.ignite.spi.discovery.tcp.*; import sun.jvmstat.monitor.*; import java.io.*; +import java.lang.reflect.*; import java.util.*; /** @@ -84,6 +85,30 @@ public class IgniteNodeRunner { public static String storeToFile(IgniteConfiguration cfg) throws IOException { String fileName = IGNITE_CONFIGURATION_FILE + cfg.getNodeId(); + // Check marshaller configuration, because read configuration method expect specific marshaller. + if (cfg.getMarshaller() instanceof OptimizedMarshaller){ + OptimizedMarshaller marsh = (OptimizedMarshaller)cfg.getMarshaller(); + + try { + Field isRequireFiled = marsh.getClass().getDeclaredField("requireSer"); + + isRequireFiled.setAccessible(true); + + boolean isRequireSer = isRequireFiled.getBoolean(marsh); + + if (isRequireSer) + throw new UnsupportedOperationException("Unsupported marshaller configuration. " + + "readCfgFromFileAndDeleteFile method expect " + OptimizedMarshaller.class.getSimpleName() + + "with requireSerializeble flag in 'false'."); + } + catch (NoSuchFieldException|IllegalAccessException e) { + throw new IgniteException("Failed to check filed of " + OptimizedMarshaller.class.getSimpleName(), e); + } + } + else + throw new UnsupportedOperationException("Unsupported marshaller. " + + "readCfgFromFileAndDeleteFile method expect " + OptimizedMarshaller.class.getSimpleName()); + try(OutputStream out = new BufferedOutputStream(new FileOutputStream(fileName))) { cfg.setMBeanServer(null); cfg.setMarshaller(null);