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


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