This is an automated email from the ASF dual-hosted git repository. sunlan pushed a commit to branch danielsun/tweak-vmplugin in repository https://gitbox.apache.org/repos/asf/groovy.git
commit 5f184815248b99bb38a83d08b0dbe081f8bced4f Author: Daniel Sun <[email protected]> AuthorDate: Sun Jul 19 19:44:48 2020 +0800 Try to fix the failing build on JDK14 --- src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java | 9 +++++---- src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java | 5 +++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java b/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java index bf865da..c4fe6b4 100644 --- a/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java +++ b/src/main/java/org/codehaus/groovy/vmplugin/v8/Java8.java @@ -141,6 +141,10 @@ public class Java8 implements VMPlugin { mn.setAnnotationDefault(true); } + protected MethodHandles.Lookup newLookup(final Class<?> declaringClass) { + return of(declaringClass); + } + private static Constructor<MethodHandles.Lookup> getLookupConstructor() { return LookupHolder.LOOKUP_Constructor; } @@ -625,9 +629,6 @@ public class Java8 implements VMPlugin { } private Object getInvokeSpecialHandleFallback(Method method, Object receiver) { - if (getLookupConstructor() == null) { - throw new GroovyBugError("getInvokeSpecialHandle requires at least JDK 7 for private access to Lookup"); - } if (!method.isAccessible()) { AccessController.doPrivileged((PrivilegedAction<Object>) () -> { ReflectionUtils.trySetAccessible(method); @@ -636,7 +637,7 @@ public class Java8 implements VMPlugin { } Class<?> declaringClass = method.getDeclaringClass(); try { - return getLookupConstructor().newInstance(declaringClass, -1). + return newLookup(declaringClass). unreflectSpecial(method, declaringClass). bindTo(receiver); } catch (ReflectiveOperationException e) { diff --git a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java index a004a67..90a21c2 100644 --- a/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java +++ b/src/main/java/org/codehaus/groovy/vmplugin/v9/Java9.java @@ -156,6 +156,11 @@ public class Java9 extends Java8 { } } + @Override + protected MethodHandles.Lookup newLookup(final Class<?> declaringClass) { + return of(declaringClass); + } + private static Constructor<MethodHandles.Lookup> getLookupConstructor() { return LookupHolder.LOOKUP_Constructor; }
