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) {