[ https://issues.apache.org/jira/browse/LANG-626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12885582#action_12885582 ]
Mark Thomas commented on LANG-626: ---------------------------------- w.r.t. WebLogic: I assume folks using it have a support contract and since this is a clear bug I'd recommend using your support contract to pressure Oracle into a fix. Yes it takes time and requires generally making a nuisance of yourself but it can be done - at least I got a handful of Oracle app server bugs fixed that way. w.r.t. Tomcat: if commons-lang is on the common class path it is because the user put it there. Tomcat does not use and does not ship with commons-lang and to the best of my recollection never has. The correct solution in this case is to put commons-lang where it belongs - in WEB-INF/lib. This would also work for any spec compliant servlet container. In terms of the original proposed patch, I am not a fan of configuration via system properties unless there is no other choice. I'm not convinced that is the case here. I would also recommend testing to ensure that this patch does not trigger a class-loader memory leak. It shouldn't, but based on past experience I wouldn't be surprised if it did. Assuming no memory leak, the only remaining argument against the patch is one of bloat. Should we add code to commons-lang just to work around another product's bugs? My general view is that we shouldn't so I'd be -0 for applying this patch. > 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.