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(a)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(a)lists.jboss.org
Subject: Re: [hibernate-dev] Connection proxy error
On Mon, 06 Nov 2006 14:11:46 +0100, Steve Ebersole
<steve.ebersole(a)jboss.com> 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: hibernate-dev-bounces(a)lists.jboss.org
> [mailto:hibernate-dev-bounces@lists.jboss.org] On Behalf Of Max
Rydahl
> Andersen
> Sent: Monday, November 06, 2006 5:54 AM
> To: hibernate-dev(a)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
max(a)hibernate.org
http://hibernate.org
JBoss a division of Red Hat
max.andersen(a)jboss.com