commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Conny Kreyßel (JIRA) <j...@apache.org>
Subject [jira] Issue Comment Edited: (LANG-626) object cloning with SerializationUtils has classloader problems with no workaround
Date Wed, 28 Jul 2010 13:56:18 GMT

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

Conny Kreyßel edited comment on LANG-626 at 7/28/10 9:55 AM:
-------------------------------------------------------------

@Mark:
Whats about a OSGi environment? There are many classloaders around and i could not copy commons-lang.jar
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?

      was (Author: azgard):
    @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-dev@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.


Mime
View raw message