[
https://issues.apache.org/jira/browse/DIRSTUDIO-585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stefan Seelmann resolved DIRSTUDIO-585.
---------------------------------------
Resolution: Fixed
Fix Version/s: 1.5.3
Assignee: Stefan Seelmann
Fixed in trunk:
http://svn.apache.org/viewvc?rev=920308&view=rev
> Do not modify the current thread's ClassLoader; or reset it afterwards
> ----------------------------------------------------------------------
>
> Key: DIRSTUDIO-585
> URL: https://issues.apache.org/jira/browse/DIRSTUDIO-585
> Project: Directory Studio
> Issue Type: Bug
> Components: studio-ldapbrowser
> Affects Versions: 1.4.0, 1.5.0
> Reporter: Karsten Baensch
> Assignee: Stefan Seelmann
> Fix For: 1.5.3
>
>
> Hi,
> in BrowserConnectionManager.load
> and in
> Utils.serialize / deserialize
> we recognized that the ClassLoader is modified without conserving / resetting
> it to the previous one at the end.
> This conflicted with our class loading mechanisms ... streaming from our own
> class store.
> As a quick fix for testing, we could do for example the following; however,
> this is not a real solution:
> public static String serialize( Object o )
> {
> String s = null;
> Thread cur_thrd = Thread.currentThread(); //patch reset current class
> loader
> ClassLoader cur_thrd_cl = cur_thrd.getContextClassLoader();
> try{
> cur_thrd.setContextClassLoader( Utils.class.getClassLoader() );
> ByteArrayOutputStream baos = new ByteArrayOutputStream();
> XMLEncoder encoder = new XMLEncoder( baos );
> encoder.writeObject( o );
> encoder.close();
> s = LdifUtils.utf8decode( baos.toByteArray() );
> }finally{
> cur_thrd.setContextClassLoader(cur_thrd_cl);
> }
> return s;
> }
> => Is there a better way?
> Thanks and regards,
> Karsten
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.