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