Fix java 21 add nest host from command line
Change-Id: Ia3ce5a5a7a512a63cef2c1420040e4dd8f4547c6
diff --git a/src/test/testbase/java/com/android/tools/r8/desugar/backports/AbstractBackportTest.java b/src/test/testbase/java/com/android/tools/r8/desugar/backports/AbstractBackportTest.java
index 3378df1..99a087c 100644
--- a/src/test/testbase/java/com/android/tools/r8/desugar/backports/AbstractBackportTest.java
+++ b/src/test/testbase/java/com/android/tools/r8/desugar/backports/AbstractBackportTest.java
@@ -94,8 +94,16 @@
try {
Method getNestHost = Class.class.getDeclaredMethod("getNestHost");
Class<?> nestHost = (Class<?>) getNestHost.invoke(clazz);
- if (nestHost != null && nestHost != clazz) {
- builder.addStrippedOuter(nestHost);
+ if (nestHost != null) {
+ if (nestHost != clazz) {
+ builder.addStrippedOuter(nestHost);
+ } else {
+ // TODO(b/383494861): In Java 21 reflection on getNestHost fails from command line.
+ nestHost = clazz.getEnclosingClass();
+ if (nestHost != clazz) {
+ builder.addStrippedOuter(nestHost);
+ }
+ }
}
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
// Ignored on old JDKs.