Umm, why not have a look at the fix?

-----Original Message-----
From: Max Andersen 
Sent: Monday, November 06, 2006 7:34 AM
To: Steve Ebersole; hibernate-dev@lists.jboss.org
Subject: Re: [hibernate-dev] Connection proxy error


if we want to be completely safe then

Thread.currentThread().getContextClassLoader()==null?Environment.class.g
etClassLoader():Thread.currentThread().getContextClassLoader()

would be better since in the case contextclassloader == null then  
Connection.class.getClassLoader() is most likely null or point to a  
"too-high"
classloader thus using the classloader of Hibernate self would be the
best  
fallback.

/max

> I committed the fix.  Just pointing out that your solution dangerously
> looks correct...
>
> -----Original Message-----
> From: Max Andersen
> Sent: Monday, November 06, 2006 7:28 AM
> To: Steve Ebersole; hibernate-dev@lists.jboss.org
> Subject: Re: [hibernate-dev] Connection proxy error
>
> On Mon, 06 Nov 2006 14:11:46 +0100, Steve Ebersole
> <[EMAIL PROTECTED]> wrote:
>
>> Context classloader can be null...
>
> But it should then be done in the classloader that loaded hibernate;
not
>
> the system classpath loader which Connection.class will be.
>
> You don't get this error at your end ?
>
> At least i'm not the only one
>
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1629#actio
> n_25145
> ;)
>
> /max
>
>>
>> -----Original Message-----
>> From: [EMAIL PROTECTED]
>> [mailto:[EMAIL PROTECTED] On Behalf Of Max
Rydahl
>> Andersen
>> Sent: Monday, November 06, 2006 5:54 AM
>> To: hibernate-dev@lists.jboss.org
>> Subject: [hibernate-dev] Connection proxy error
>>
>> Hi Steve,
>>
>> After updating from svn I get the following in alot of tests:
>>
>> java.lang.IllegalArgumentException: interface
>> org.hibernate.jdbc.ConnectionWrapper is not visible from class loader
>>      at java.lang.reflect.Proxy.getProxyClass(Proxy.java:331)
>>      at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:552)
>>      at
>>
>
org.hibernate.jdbc.BorrowedConnectionProxy.generateProxy(BorrowedConnect
>> ionProxy.java:56)
>>      at
>>
>
org.hibernate.jdbc.ConnectionManager.borrowConnection(ConnectionManager.
>> java:163)
>>      at
>> org.hibernate.jdbc.JDBCContext.borrowConnection(JDBCContext.java:111)
>>      at
>> org.hibernate.impl.SessionImpl.connection(SessionImpl.java:359)
>>      at
>>
>
org.hibernate.test.connections.AggressiveReleaseTest.testBorrowedConnect
>> ions(AggressiveReleaseTest.java:210)
>>
>> I fixed it by changing:
>>
>> public static Connection generateProxy(ConnectionManager
>> connectionManager) {
>>              BorrowedConnectionProxy handler = new
>> BorrowedConnectionProxy( connectionManager );
>>              return ( Connection ) Proxy.newProxyInstance(
>>                      Connection.class.getClassLoader(),
>>                      PROXY_INTERFACES,
>>                      handler
>>              );
>>      }
>>
>> to
>>
>> public static Connection generateProxy(ConnectionManager
>> connectionManager) {
>>              BorrowedConnectionProxy handler = new
>> BorrowedConnectionProxy( connectionManager );
>>              return ( Connection ) Proxy.newProxyInstance(
>>      
>> Thread.currentThread().getContextClassLoader(),
>>                      PROXY_INTERFACES,
>>                      handler
>>              );
>>      }
>>
>> Connection.class is always loaded via the boot/system clasloader so I
>> don't get how using its classloader
>> when generating the proxy would ever work ?
>>
>
>
>



-- 
--
Max Rydahl Andersen
callto://max.rydahl.andersen

Hibernate
[EMAIL PROTECTED]
http://hibernate.org

JBoss a division of Red Hat
[EMAIL PROTECTED]

_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev

Reply via email to