- 
    Bug 
- 
    Resolution: Unresolved
- 
     P3 P3
- 
    8
- 
    None
                    public class X {
public class Y {}
}
The outer class of Y is X. `Y.class.getDeclaringClass()` returns `Class` instance representing X.
The behavior is not specified if X cannot be found. The current implementation throws NCDFE.
 
Exception in thread "main" java.lang.NoClassDefFoundError: X
at java.base/java.lang.Class.getDeclaringClass0(Native Method)
at java.base/java.lang.Class.getEnclosingClass(Class.java:1536)
at Test.main(Test.java:5)
Caused by: java.lang.ClassNotFoundException: X
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 3 more
The APIs whose implementation inspects `InnerAttributes` or `EnclosingMethod` method have simiar issue such as:
Class::getDeclaringClass, Class::getEnclosingClass, Class::getDeclaredClasses
public class Y {}
}
The outer class of Y is X. `Y.class.getDeclaringClass()` returns `Class` instance representing X.
The behavior is not specified if X cannot be found. The current implementation throws NCDFE.
Exception in thread "main" java.lang.NoClassDefFoundError: X
at java.base/java.lang.Class.getDeclaringClass0(Native Method)
at java.base/java.lang.Class.getEnclosingClass(Class.java:1536)
at Test.main(Test.java:5)
Caused by: java.lang.ClassNotFoundException: X
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 3 more
The APIs whose implementation inspects `InnerAttributes` or `EnclosingMethod` method have simiar issue such as:
Class::getDeclaringClass, Class::getEnclosingClass, Class::getDeclaredClasses
- relates to
- 
                    JDK-8057919 Class.getSimpleName() should work for non-JLS compliant class names -           
- Closed
 
-