Uploaded image for project: 'Commons Lang'
  1. Commons Lang
  2. LANG-626

object cloning with SerializationUtils has classloader problems with no workaround

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 3.0.1
    • lang.*
    • None
    • WebLogic 10.3

    Description

      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

      Attachments

        1. ClassLoaderAwareCloneMethod.zip
          2 kB
          Sven Ludwig
        2. ContextClassLoaderAwareCloneMethod.zip
          3 kB
          Sven Ludwig

        Activity

          People

            Unassigned Unassigned
            ernestp Ernest Pasour
            Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: