On 11/04/2011 04:55 PM, Caolán McNamara wrote:
On Fri, 2011-11-04 at 16:23 +0100, Stephan Bergmann wrote:
Anyway, you have been warned. ;)
Pfff, seems a sure route to madness to have to second guess every
possible java api over and above its documentation in case it uses some
ContextClassLoader under the hood. *shudder*, that'd be some audit
effort. Direct uses are one thing, but indirect hidden ones.
The context class loader is a dirty hack in the Java API, broken by
design. Just goes to show how bad global variables are.
Anyway, is your suggested wrapper correct ? Looks a bit odd now that I
actually read it as opposed to boggle at it.
Just wrote it down as a quick sketch, so surely contains all sorts of
errors.
Thread.currentThread().setContextClassLoader(c); //like so I guess?
yes, sure
Anyway, given the code in question is likely called from the main
thread, so would not exhibit any more of a problem than all the already
existing instances of DocumentBuilderFactory.newInstance(), and
presumably already works fine in master, I'm indifferent to whether any
context class loader handling would be needed for a 3.4 cherry-pick
after all... Consider it as approvingly reviewed by me either way.
(That said, I'll make a mental note to revisit the problem on master and
maybe introduce some code abstraction to wrap around calls of
DocumentBuilderFactory.newInstance() and similar constructs.)
Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice