RFR: JDK-8209055: c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly (original) (raw)
Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Nov 7 21:34:39 UTC 2018
- Previous message: JDK 12 RFR of JDK-8213444: Missing emphasis for term being defined
- Next message: RFR: JDK-8209055: c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Jan,
You don't need to @build JavacTestingAbstractProcessor, since it is not used.
Otherwise OK.
-- Jon
On 10/31/18 7:59 AM, Jan Lahoda wrote:
Hi,
After JDK-8187950, when a Symbol is completed in "user"/external mode (as opposed to "javac internal" mode), and the completion fails, the failed Symbol is "split", so that the user's code and javac may see a different version of the Symbol (e.g. completed/not completed). This helps to prevent throwing CompletionFailures to user's code. But the issue is that ClassFinder.loadClass may create "speculative" ClassSymbols, which are subsequently removed if they turn out to be non-existent. But when this happens in the "user" mode (like inside Elements.getTypeElement), even these non-existent ClassSymbols are still retained, and the number of ClassSymbols retained this way may be fairly high. The proposed patch is to clear these speculative Symbols even from the "user" mode cache. Bug: https://bugs.openjdk.java.net/browse/JDK-8209055 Webrev: http://cr.openjdk.java.net/~jlahoda/8209055/webrev.00/ Any feedback is welcome. Thanks, Jan
- Previous message: JDK 12 RFR of JDK-8213444: Missing emphasis for term being defined
- Next message: RFR: JDK-8209055: c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]