Details
-
Bug
-
Resolution: Fixed
-
P3
-
11, 12, 13, 14, 15, 16, 17
-
b17
-
generic
-
generic
-
Verified
Backports
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 |
Description
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.
Attachments
Issue Links
- 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/jdk13u-dev/922ce7ee
-
Commit openjdk/jdk15u-dev/8716863f
-
Commit openjdk/jdk17u/f3cc4aac
-
Commit openjdk/jdk/ddc26274
-
Review openjdk/jdk11u-dev/500
-
Review openjdk/jdk13u-dev/286
-
Review openjdk/jdk15u-dev/127
-
Review openjdk/jdk17u/170
-
Review openjdk/jdk/5683