[ 
https://issues.apache.org/jira/browse/LANG-626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12893180#action_12893180
 ] 

Conny Kreyßel commented on LANG-626:
------------------------------------

@Mark:
Whats about a OSGi environment? There are many classloaders around and i could 
not copy them to every plugin it use commons-lang.

Why not add all SerializationUtils methods a second method with classloader 
attribute and then resolve classes within the ObjectOutputStream with the 
submitted classloader and/or ContextClassLoader?

> object cloning with SerializationUtils has classloader problems with no 
> workaround
> ----------------------------------------------------------------------------------
>
>                 Key: LANG-626
>                 URL: https://issues.apache.org/jira/browse/LANG-626
>             Project: Commons Lang
>          Issue Type: Bug
>          Components: lang.*
>         Environment: WebLogic 10.3
>            Reporter: Ernest Pasour
>         Attachments: ContextClassLoaderAwareCloneMethod.zip
>
>
> In WebLogic 10.3, commons_lang is included on the main classpath, trumping 
> the commons_lang on a webapp classpath (in webinf/lib).  This causes 
> ClassNotFoundException errors when using SerializationUtils.clone() because 
> Java serialization uses the classloader of the current class (class invoked 
> from) when doing serialization.  Java serialization does not respond to the 
> thread context classloader.
> Fix: The following web page suggests a fix (including the full source code) 
> that honors the context classloader if set.  I don't know if this is the 
> ideal solution, but at least it allows the problem to be worked around 
> without affecting working behavior for existing clients.
> http://www.mail-archive.com/commons-...@jakarta.apache.org/msg44524.html
> Workaround: There is a flag to set on weblogic that inverts the classloader.  
> *HOWEVER*, this only works if the webapp does not need certain xml jars.   
> Otherwise, WebLogic will fail to start because *it* has classloader issues.   
>  Therefore, this is not an acceptable workaround.  
> Another workaround: The only workaround I know of is to copy the 
> SerializationUtils class into a different package in my app so that the 
> proper invocation context will be used for serialization.  This is very 
> undesirable.
> I found these 3 bugs in the database that all seem to be the same problem.  
> https://issues.apache.org/jira/browse/OJB-140
> https://issues.apache.org/jira/browse/LANG-241
> https://issues.apache.org/jira/browse/JS2-831

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to