- 
    Bug 
- 
    Resolution: Fixed
- 
     P3 P3
- 
    11, 12, 13, 14, 15, 16, 17
- 
        b17
- 
        generic
- 
        generic
- 
        Verified
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build | 
|---|---|---|---|---|---|---|
| JDK-8275036 | 17.0.2 | Yi Yang | P3 | Resolved | Fixed | b03 | 
| JDK-8276235 | 15.0.6 | Yuri Nesterenko | P3 | Resolved | Fixed | b02 | 
| JDK-8276237 | 13.0.10 | Yuri Nesterenko | P3 | Resolved | Fixed | b02 | 
| JDK-8278201 | 11.0.15-oracle | Yoshiki Sato | P3 | Resolved | Fixed | b01 | 
| JDK-8275321 | 11.0.14 | Yi Yang | P3 | Resolved | Fixed | b01 | 
The class hierarchies are as follows(w/ some simplifications):
```
class GregorianCalendar {
static Gregorian base = CalendarSystem.getGregorianCalendar();
}
class Gregorian extends BaseCalendar { }
class BaseCalendar extends AbstractCalendar {}
class AbstractCalendar extends CalendarSystem {}
public class CalendarSystem {
Gregorian GREGORIAN_INSTANCE = new Gregorian();
}
```
We create two new threads to link GregorianCalendar and AbstractCalendar, respectively.
T1: new GregorianCalendar()
GregorianCalendar -> Gregorian -> BaseCalendar -> AbstractCalendar -> CalendarSystem
T2: Unsafe.ensureInitialized(AbstractCalendar.class)
AbstractCalendar -> CalendarSystem -> Gregorian
What would next happen, is that application hanging due to deadlock between inGregorian and AbstractCalendar.
- backported by
- 
                    JDK-8275036 Potential cyclic dependencies between Gregorian and CalendarSystem -           
- Resolved
 
-         
- 
                    JDK-8275321 Potential cyclic dependencies between Gregorian and CalendarSystem -           
- Resolved
 
-         
- 
                    JDK-8276235 Potential cyclic dependencies between Gregorian and CalendarSystem -           
- Resolved
 
-         
- 
                    JDK-8276237 Potential cyclic dependencies between Gregorian and CalendarSystem -           
- Resolved
 
-         
- 
                    JDK-8278201 Potential cyclic dependencies between Gregorian and CalendarSystem -           
- Resolved
 
-         
- links to
- 
                     Commit
        openjdk/jdk11u-dev/e2f83016 Commit
        openjdk/jdk11u-dev/e2f83016
- 
                     Commit
        openjdk/jdk13u-dev/922ce7ee Commit
        openjdk/jdk13u-dev/922ce7ee
- 
                     Commit
        openjdk/jdk15u-dev/8716863f Commit
        openjdk/jdk15u-dev/8716863f
- 
                     Commit
        openjdk/jdk17u/f3cc4aac Commit
        openjdk/jdk17u/f3cc4aac
- 
                     Commit
        openjdk/jdk/ddc26274 Commit
        openjdk/jdk/ddc26274
- 
                     Review
        openjdk/jdk11u-dev/500 Review
        openjdk/jdk11u-dev/500
- 
                     Review
        openjdk/jdk13u-dev/286 Review
        openjdk/jdk13u-dev/286
- 
                     Review
        openjdk/jdk15u-dev/127 Review
        openjdk/jdk15u-dev/127
- 
                     Review
        openjdk/jdk17u/170 Review
        openjdk/jdk17u/170
- 
                     Review
        openjdk/jdk/5683 Review
        openjdk/jdk/5683