[hibernate-commits] Hibernate SVN: r18548 - core/trunk/envers/src/main/java/org/hibernate/envers/tools.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Jan 13 19:04:33 EST 2010


Author: steve.ebersole at jboss.com
Date: 2010-01-13 19:04:32 -0500 (Wed, 13 Jan 2010)
New Revision: 18548

Modified:
   core/trunk/envers/src/main/java/org/hibernate/envers/tools/Tools.java
Log:
HHH-4791 - Invalid assumption made in org.hibernate.envers.tools.Tools#getTargetFromProxy


Modified: core/trunk/envers/src/main/java/org/hibernate/envers/tools/Tools.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/tools/Tools.java	2010-01-13 23:59:03 UTC (rev 18547)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/tools/Tools.java	2010-01-14 00:04:32 UTC (rev 18548)
@@ -73,12 +73,22 @@
         }
 
         SessionImplementor sessionImplementor = proxy.getHibernateLazyInitializer().getSession();
-        Session tempSession = sessionImplementor==null ? sessionFactoryImplementor.openTemporarySession() : sessionImplementor.getFactory().openTemporarySession();
+        Session tempSession = sessionImplementor==null
+				? sessionFactoryImplementor.openTemporarySession()
+				: sessionImplementor.getFactory().openTemporarySession();
         try {
-            proxy.getHibernateLazyInitializer().setSession((SessionImplementor) tempSession);
-            proxy.getHibernateLazyInitializer().initialize();
-            return proxy.getHibernateLazyInitializer().getImplementation();
-        } finally {
+			Object target = tempSession.get(
+					proxy.getHibernateLazyInitializer().getEntityName(),
+					proxy.getHibernateLazyInitializer().getIdentifier()
+			);
+			proxy.getHibernateLazyInitializer().setImplementation( target );
+			return target;
+// adam, changes in AbstractLazyInitializer render this no longer valid...
+//            proxy.getHibernateLazyInitializer().setSession((SessionImplementor) tempSession);
+//            proxy.getHibernateLazyInitializer().initialize();
+//            return proxy.getHibernateLazyInitializer().getImplementation();
+        }
+		finally {
             tempSession.close();
         }
     }



More information about the hibernate-commits mailing list