java.lang.ClassCircularityError occurs when program overrides ClassLoader.loadClass and
call Class.getSimpleName().
CONFIGURATION:
OS : windowsXP(SP2, Japanese)
CPU : Pentium IV 1.4GHz
Men : 384 MB
JRE : 5.0u10 and 6.0
REPRODUCE :
1. unfold the attached archive, test-program.zip
2. Edit compile.bat and run.bat (set JAVA_HOME)
3. Invoke compile.bat and then run.bat
The following messages will appear.(6.0)
K:\shares2\hitachi\classcircularityerro-occurs\TP>java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode)
K:\shares2\TP>java -classpath . server.DummyServer
Exception in thread "main" java.lang.ClassCircularityError: app/Class1$ChildClass
at java.lang.Class.getDeclaringClass(Native Method)
at java.lang.Class.getEnclosingClass(Class.java:1085)
at java.lang.Class.getSimpleBinaryName(Class.java:1220)
at java.lang.Class.getSimpleName(Class.java:1112)
at server.ClassLoaderImpl.loadClass(ClassLoaderImpl.java:16)
at server.DummyServer.<init>(DummyServer.java:15)
at server.DummyServer.main(DummyServer.java:23)