ignite-754: implemented
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bee6ac82 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bee6ac82 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bee6ac82 Branch: refs/heads/ignite-gg-9613 Commit: bee6ac82d6ed41dc7e5262c72100c7274a1e7880 Parents: 655514b Author: Denis Magda <dma...@gridgain.com> Authored: Thu Apr 16 13:53:51 2015 +0300 Committer: Denis Magda <dma...@gridgain.com> Committed: Thu Apr 16 13:53:51 2015 +0300 ---------------------------------------------------------------------- .../managers/discovery/GridDiscoveryManager.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bee6ac82/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java index 9f74b83..7b6edc2 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java @@ -738,11 +738,19 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { Object locMode = locNode.attribute(ATTR_DEPLOYMENT_MODE); + int locJvmMajVer = nodeJavaMajorVer(locNode); + boolean locP2pEnabled = locNode.attribute(ATTR_PEER_CLASSLOADING); boolean warned = false; for (ClusterNode n : nodes) { + int rmtJvmMajVer = nodeJavaMajorVer(n); + + if (locJvmMajVer != rmtJvmMajVer) + throw new IgniteCheckedException("Local node's java major version = " + locJvmMajVer + + " is different from remote node's one = " + rmtJvmMajVer); + String rmtPreferIpV4 = n.attribute("java.net.preferIPv4Stack"); if (!F.eq(rmtPreferIpV4, locPreferIpV4)) { @@ -783,6 +791,14 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { log.debug("Finished node attributes consistency check."); } + private int nodeJavaMajorVer(ClusterNode node) throws IgniteCheckedException { + try { + return Integer.parseInt(node.<String>attribute("java.version").split(".")[1]); + } + catch (Exception e) { + throw new IgniteCheckedException("Failed to get java major version with reason: " + e.getMessage()); + } + } /** * @param nodes Nodes. * @return Total CPUs.