-
Bug
-
Resolution: Fixed
-
P3
-
11.0.2, 12
-
b20
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8218123 | 11.0.4-oracle | Ivan Gerasimov | P3 | Resolved | Fixed | b02 |
JDK-8219941 | 11.0.4 | Jan Lahoda | P3 | Resolved | Fixed | b01 |
JDK-8221943 | 11.0.3-oracle | Ivan Gerasimov | P3 | Resolved | Fixed | b31 |
JDK-8221416 | 11.0.2 | Ivan Gerasimov | P3 | Closed | Fixed | b31 |
I've observed OOM from javac, where a half of the heap was held by com.sun.tools.javac.code.DeferredCompletionFailureHandler instances.
DeferredCompletionFailureHandler$Handler has WeakHashMap<ClassSymbol, FlipSymbolDescription> class2Flip field, where FlipSymbolDescription has a strong reference to ClassSymbol, which is always the same as a key. j.u.WHM guarantees that keys are weakly referenced, but doesn't give any guarantees on how values are referenced, in fact, there is an implementation note which states that values are held by strong references.
DeferredCompletionFailureHandler$Handler has WeakHashMap<ClassSymbol, FlipSymbolDescription> class2Flip field, where FlipSymbolDescription has a strong reference to ClassSymbol, which is always the same as a key. j.u.WHM guarantees that keys are weakly referenced, but doesn't give any guarantees on how values are referenced, in fact, there is an implementation note which states that values are held by strong references.
- backported by
-
JDK-8218123 c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
-
- Resolved
-
-
JDK-8219941 c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
-
- Resolved
-
-
JDK-8221943 c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
-
- Resolved
-
-
JDK-8221416 c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
-
- Closed
-