[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