-
Bug
-
Resolution: Fixed
-
P4
-
21
In the Java Virtual Machine Specification (JVMS) §5.3.5. “Deriving a Class from a class File Representation” (https://docs.oracle.com/javase/specs/jvms/se20/html/jvms-5.html#jvms-5.3.5), step 3 reads:
“If C has a direct superclass, the symbolic reference from C to its direct superclass is resolved using the algorithm of §5.4.3.1.”
Now, to resolve the symbolic reference from C to its direct superclass by the algorithm of §5.4.3.1, the defining loader of C (that is, the defining loader of D in §5.4.3.1) shall be used in the algorithm. However, the defining loader for C in §5.3.5 is only marked as such later, in step 4 of §5.3.5, and only when no exception is thrown before.
So I think this point deserves some improvements.
“If C has a direct superclass, the symbolic reference from C to its direct superclass is resolved using the algorithm of §5.4.3.1.”
Now, to resolve the symbolic reference from C to its direct superclass by the algorithm of §5.4.3.1, the defining loader of C (that is, the defining loader of D in §5.4.3.1) shall be used in the algorithm. However, the defining loader for C in §5.3.5 is only marked as such later, in step 4 of §5.3.5, and only when no exception is thrown before.
So I think this point deserves some improvements.