[hibernate-dev] HHH-8310 : WrappedBlob/WrappedClob classloading problem

Gail Badner gbadner at redhat.com
Tue Jul 8 17:40:00 EDT 2014


Hi Scott,

I believe the classloading problem you mention is the same. Both BlobProxy.getProxyClassLoader() and SerializableBlobProxy.getProxyClassLoader() return ClassLoaderHelper.getContextClassLoader() if non-null.

Gail

----- Original Message -----
> From: "Scott Marlow" <smarlow at redhat.com>
> To: "Gail Badner" <gbadner at redhat.com>, "hibernate-dev" <hibernate-dev at lists.jboss.org>
> Sent: Tuesday, July 8, 2014 2:19:50 PM
> Subject: Re: [hibernate-dev] HHH-8310 : WrappedBlob/WrappedClob classloading problem
> 
> On 07/08/2014 05:04 PM, Scott Marlow wrote:
> > This sounds similar to https://community.jboss.org/message/879546
> 
> I was hoping to hear more feedback from the above link but didn't.  I
> suspect that its a classloader issue with ear sub-deployments having
> Hibernate on their classpath but not the ear top level classloader.
> 
> 
> >
> > On 07/08/2014 03:53 PM, Gail Badner wrote:
> >> HHH-8310 [1] mentions a Spring bug SPR-11125 [2] that results in threads
> >> having a different ContextClassLoader (CCL) than their caller. As a
> >> result, SerializableBlobProxy.generateProxy() throws
> >> IllegalArgumentException because WrappedBlob is not found. The same
> >> happens for SerializableClobProxy.generateProxy() because WrappedClob is
> >> not found.
> >>
> >> IIUC, this will be fixed by accessing the ClassLoaderService in Hibernate
> >> 5.
> >>
> >> I'm looking for either a fix or workaround for this in Hibernate 4.2.x and
> >> 4.3.x.
> >>
> >> A) A possible fix for HHH-8310 suggests using the ClassLoader returned by
> >> WrappedBlob.class.getClassLoader(). Could this somehow get an unintended
> >> ClassLoader?
> 
> Good question but this change might impact HHH-8010.  Might be good to
> check with Brett on why OSGi needs to use an alternative classloader
> (which is set in ClassLoaderHelper).
> 
> >>
> >> B) A workaround is for the caller to initialize
> >> ClassLoaderHelper.overridenClassLoader before calling Spring.
> 
> I don't think this will work in a multiple deployment environment (e.g.
> WildFly) unless ClassLoaderHelper defaulted to the ORM classloader
> instead of an application level classloader.
> 
> >>
> >> Which would be more appropriate?
> >>
> >> Thanks,
> >> Gail
> >>
> >> [1] https://hibernate.atlassian.net/browse/HHH-8310
> >> [2] https://jira.spring.io/browse/SPR-11125
> >> _______________________________________________
> >> hibernate-dev mailing list
> >> hibernate-dev at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >>
> >
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >
> 
> 


More information about the hibernate-dev mailing list