RFR 8209184: JDK8 ResourceBundle vulnerable to GC (fix included)
Adam Farley8
adam.farley at uk.ibm.com
Fri Aug 10 15:42:00 UTC 2018
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
More information about the core-libs-dev
mailing list