From 9d933091bfc82cbf5d65c2b27a1ff9dc10577d6a Mon Sep 17 00:00:00 2001 From: Carsten Varming Date: Wed, 29 Jun 2016 13:04:15 -0400 Subject: [PATCH] Add version check for JDK9 and beyond. Motivation: Netty's platform dependent parts should know about JDK9. Modifications: JDK9 introduce Runtime$Version Runtime.version() which has an int major() method that always return the major Java version. I call that method to get the Java major version. Result: Netty will recognize all future JDK versions. --- .../java/io/netty/util/internal/PlatformDependent.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/common/src/main/java/io/netty/util/internal/PlatformDependent.java b/common/src/main/java/io/netty/util/internal/PlatformDependent.java index d474a8a6d0..fe21f2d0a7 100644 --- a/common/src/main/java/io/netty/util/internal/PlatformDependent.java +++ b/common/src/main/java/io/netty/util/internal/PlatformDependent.java @@ -1030,6 +1030,15 @@ public final class PlatformDependent { break; } + try { + Method getVersion = java.lang.Runtime.class.getMethod("version"); + Object version = getVersion.invoke(null); + javaVersion = (Integer) version.getClass().getMethod("major").invoke(version); + break; + } catch (Throwable ignored) { + // Ignore + } + try { Class.forName("java.time.Clock", false, getClassLoader(Object.class)); javaVersion = 8;