JDK-6351299 : Classloading failures when LinkageError is rethrown
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2005-11-16
  • Updated: 2011-01-19
  • Resolved: 2005-11-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other JDK 6
5.0u8Fixed 6 b59aFixed
Description
If during concurrent classloading process LinkageError exception is caught and then rethrown, future classloading process will fail whether it is possible to recover or not. Mainly, badly behaved classloaders are prone to this issue.

Hotspot and IBM v.5.0b VMs are affected by this issue.
IBM VM v.1.4.2 is not affected. 

Failing tests:
    runtime/ParallelClassLoading/stress/freeLock/loadClass/dynamic-init/anonymous-complex
    runtime/ParallelClassLoading/stress/freeLock/loadClass/dynamic-init/anonymous-simple
    runtime/ParallelClassLoading/stress/freeLock/loadClass/dynamic-init/init-complex
    runtime/ParallelClassLoading/stress/freeLock/loadClass/dynamic-init/inner-complex
    runtime/ParallelClassLoading/stress/freeLock/loadClass/inner-complex
    runtime/ParallelClassLoading/stress/freeLock/loadClass/tree
    runtime/ParallelClassLoading/stress/freeLock/forName/dynamic-init/anonymous-complex
    runtime/ParallelClassLoading/stress/freeLock/forName/dynamic-init/anonymous-simple
    runtime/ParallelClassLoading/stress/freeLock/forName/dynamic-init/init-complex
    runtime/ParallelClassLoading/stress/freeLock/forName/dynamic-init/inner-complex
    runtime/ParallelClassLoading/stress/freeLock/forName/inner-complex
    runtime/ParallelClassLoading/stress/freeLock/forName/tree
    runtime/ParallelClassLoading/stress-redefine/freeLock/loadClass/dynamic-init/anonymous-complex     runtime/ParallelClassLoading/stress-redefine/freeLock/loadClass/dynamic-init/anonymous-simple
    runtime/ParallelClassLoading/stress-redefine/freeLock/loadClass/dynamic-init/init-complex
    runtime/ParallelClassLoading/stress-redefine/freeLock/loadClass/dynamic-init/inner-complex
    runtime/ParallelClassLoading/stress-redefine/freeLock/loadClass/inner-complex
    runtime/ParallelClassLoading/stress-redefine/freeLock/loadClass/tree
    runtime/ParallelClassLoading/stress-redefine/freeLock/forName/dynamic-init/anonymous-complex
    runtime/ParallelClassLoading/stress-redefine/freeLock/forName/dynamic-init/anonymous-simple
    runtime/ParallelClassLoading/stress-redefine/freeLock/forName/dynamic-init/init-complex
    runtime/ParallelClassLoading/stress-redefine/freeLock/forName/dynamic-init/inner-complex
    runtime/ParallelClassLoading/stress-redefine/freeLock/forName/inner-complex
    runtime/ParallelClassLoading/stress-redefine/freeLock/forName/tree
    runtime/ParallelClassLoading/InvalidLoading/loadClass/D-hierarchy
    runtime/ParallelClassLoading/InvalidLoading/loadClass/T-hierarchy
    runtime/ParallelClassLoading/InvalidLoading/loadClass/Y-hierarchy
    runtime/ParallelClassLoading/InvalidLoading/forName/D-hierarchy
    runtime/ParallelClassLoading/InvalidLoading/forName/T-hierarchy
    runtime/ParallelClassLoading/InvalidLoading/forName/Y-hierarchy

Comments
EVALUATION Need to ensure that first requestor of a class load finishes first and subsequent requestors use those results.
17-11-2005