--- old/jdk/src/java.base/share/classes/java/lang/Class.java 2017-06-28 16:02:03.000000000 +0800 +++ new/jdk/src/java.base/share/classes/java/lang/Class.java 2017-06-28 16:02:03.000000000 +0800 @@ -468,9 +468,8 @@ c = c.getComponentType(); } - // Check ACC_VALUE for now to workaround the issue in C2 intrinsic - // for isAssignableFrom that does not work with value type - return (c.getModifiers() & ACC_VALUE) != 0 && c != __Value.class; + // For now, check if it is a subtype of __Value + return __Value.class.isAssignableFrom(c) && c != __Value.class; } private void ensureNotValueClass() {