You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/10/30 12:27:06 UTC
[12/23] ignite git commit: IGNITE-6248 - Throw exception on
unsupported Java 1.7 releases.
IGNITE-6248 - Throw exception on unsupported Java 1.7 releases.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e228ce36
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e228ce36
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e228ce36
Branch: refs/heads/ignite-6748
Commit: e228ce3600332f1873f7250b7ca2919e2f3607bc
Parents: f0500e2
Author: dkarachentsev <dk...@gridgain.com>
Authored: Fri Oct 27 11:55:04 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Oct 27 11:55:48 2017 +0300
----------------------------------------------------------------------
.../apache/ignite/IgniteSystemProperties.java | 6 ++++
.../org/apache/ignite/internal/IgnitionEx.java | 34 ++++++++++++++++++--
2 files changed, 38 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e228ce36/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index d7d4443..4294c71 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -656,6 +656,12 @@ public final class IgniteSystemProperties {
/** Ignite page memory concurrency level. */
public static final String IGNITE_OFFHEAP_LOCK_CONCURRENCY_LEVEL = "IGNITE_OFFHEAP_LOCK_CONCURRENCY_LEVEL";
+ /**
+ * Start Ignite on versions of JRE 7 older than 1.7.0_71. For proper work it may require
+ * disabling JIT in some places.
+ */
+ public static final String IGNITE_FORCE_START_JAVA7 = "IGNITE_FORCE_START_JAVA7";
+
/** Returns true for system properties only avoiding sending sensitive information. */
private static final IgnitePredicate<Map.Entry<String, String>> PROPS_FILTER = new IgnitePredicate<Map.Entry<String, String>>() {
@Override public boolean apply(final Map.Entry<String, String> entry) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/e228ce36/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index 67c771b..d84f8a9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -118,6 +118,7 @@ import static org.apache.ignite.IgniteState.STOPPED_ON_SEGMENTATION;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_CACHE_CLIENT;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_CONFIG_URL;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_DEP_MODE_OVERRIDE;
+import static org.apache.ignite.IgniteSystemProperties.IGNITE_FORCE_START_JAVA7;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_LOCAL_HOST;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_NO_SHUTDOWN_HOOK;
import static org.apache.ignite.IgniteSystemProperties.IGNITE_RESTART_CODE;
@@ -189,9 +190,38 @@ public class IgnitionEx {
static {
// Check 1.8 just in case for forward compatibility.
if (!U.jdkVersion().contains("1.7") &&
- !U.jdkVersion().contains("1.8"))
- throw new IllegalStateException("Ignite requires Java 7 or above. Current Java version " +
+ !U.jdkVersion().contains("1.8")) {
+ throw new IllegalStateException("Ignite requires Java 1.7.0_71 or above. Current Java version " +
"is not supported: " + U.jdkVersion());
+ }
+
+ String jreVer = U.jreVersion();
+
+ if (jreVer.startsWith("1.7")) {
+ int upd = jreVer.indexOf('_');
+ int beta = jreVer.indexOf('-');
+
+ if (beta < 0)
+ beta = jreVer.length();
+
+ if (upd > 0 && beta > 0) {
+ try {
+ int update = Integer.parseInt(jreVer.substring(upd + 1, beta));
+
+ boolean forceJ7 = IgniteSystemProperties.getBoolean(IGNITE_FORCE_START_JAVA7, false);
+
+ if (update < 71 && !forceJ7) {
+ throw new IllegalStateException("Ignite requires Java 1.7.0_71 or above. Current Java version " +
+ "is not supported: " + jreVer);
+ }
+ else if (forceJ7)
+ System.err.println("Ignite requires Java 1.7.0_71 or above. Start on your own risk.");
+ }
+ catch (NumberFormatException ignore) {
+ // No-op
+ }
+ }
+ }
// To avoid nasty race condition in UUID.randomUUID() in JDK prior to 6u34.
// For details please see: