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