Check `Lookup` constants
diff --git a/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java b/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java
index 494e8b1..5ccf4d2 100644
--- a/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java
+++ b/src/main/java/org/apache/groovy/lang/GroovyObjectHelper.java
@@ -19,6 +19,7 @@
package org.apache.groovy.lang;
import groovy.lang.GroovyObject;
+import org.codehaus.groovy.GroovyBugError;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodHandles.Lookup;
@@ -133,6 +134,13 @@
private static final Lookup LOOKUP = MethodHandles.lookup();
private static final Lookup NULL_LOOKUP = MethodHandles.lookup();
+ static {
+ if (NULL_LOOKUP == LOOKUP) {
+ // should never happen
+ throw new GroovyBugError("`MethodHandles.lookup()` returns the same `Lookup` instance");
+ }
+ }
+
private static final ClassValue<AtomicReference<Lookup>> LOOKUP_MAP = new ClassValue<AtomicReference<Lookup>>() {
@Override
protected AtomicReference<Lookup> computeValue(Class<?> type) {