RFR 8209184: JDK8 ResourceBundle vulnerable to GC (fix included) (original) (raw)
mandy chung mandy.chung at oracle.com
Tue Aug 14 15:24:36 UTC 2018
- Previous message: RFR 8209184: JDK8 ResourceBundle vulnerable to GC (fix included)
- Next message: RFR 8209184: JDK8 ResourceBundle vulnerable to GC (fix included)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi Adam,
Have you tried Peter's suggestion if an empty static method taking an Object parameter? Does it work for you?
Your proposed approach seems fine and I would suggest to put the check in a static keepAlive method that will make it explicitly.
Mandy
On 8/10/18 8:42 AM, Adam Farley8 wrote:
Hi All,
This bug could be fixed by comparing the Class Loader with a blank static volatile Object (defined outside the method scope) at the end of the getBundleImpl class. E.g. ----------------------------------------- +1322 /** * volatile reference object to guard the ClassLoader object * being garbage collected before getBundleImpl() method completes * the caching and retrieving of requested Resourcebundle object */ private static volatile Object vo = new Object();
+1400 //Should never be true. Using the loader here prevents it being GC'd. if (loader == vo) throw new Error("Unexpected error."); ----------------------------------------- Will upload a webrev after debate. - Adam Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
- Previous message: RFR 8209184: JDK8 ResourceBundle vulnerable to GC (fix included)
- Next message: RFR 8209184: JDK8 ResourceBundle vulnerable to GC (fix included)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]