[hibernate-commits] Hibernate SVN: r17587 - in core/trunk/envers/src/main/java/org/hibernate/envers: tools and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Sep 30 13:16:02 EDT 2009


Author: adamw
Date: 2009-09-30 13:16:01 -0400 (Wed, 30 Sep 2009)
New Revision: 17587

Modified:
   core/trunk/envers/src/main/java/org/hibernate/envers/event/AuditEventListener.java
   core/trunk/envers/src/main/java/org/hibernate/envers/tools/Tools.java
Log:
HHH-4449:
- applying patch

Modified: core/trunk/envers/src/main/java/org/hibernate/envers/event/AuditEventListener.java
===================================================================
--- core/trunk/envers/src/main/java/org/hibernate/envers/event/AuditEventListener.java	2009-09-30 17:11:04 UTC (rev 17586)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/event/AuditEventListener.java	2009-09-30 17:16:01 UTC (rev 17587)
@@ -104,7 +104,7 @@
                     	    toEntityName = session.bestGuessEntityName(newValue);
                     	    id = hibernateProxy.getHibernateLazyInitializer().getIdentifier();
 							// We've got to initialize the object from the proxy to later read its state.   
-							newValue = Tools.getTargetFromProxy(hibernateProxy);
+							newValue = Tools.getTargetFromProxy(session.getFactory(), hibernateProxy);
                     	} else {
                     		toEntityName =  session.guessEntityName(newValue);
 
@@ -124,7 +124,7 @@
                     	    toEntityName = session.bestGuessEntityName(oldValue);
                     	    id = hibernateProxy.getHibernateLazyInitializer().getIdentifier();
 							// We've got to initialize the object as we'll read it's state anyway.
-							oldValue = Tools.getTargetFromProxy(hibernateProxy);
+							oldValue = Tools.getTargetFromProxy(session.getFactory(), hibernateProxy);
                     	} else {
                     		toEntityName =  session.guessEntityName(oldValue);
 

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	2009-09-30 17:11:04 UTC (rev 17586)
+++ core/trunk/envers/src/main/java/org/hibernate/envers/tools/Tools.java	2009-09-30 17:16:01 UTC (rev 17587)
@@ -25,6 +25,7 @@
 
 import org.hibernate.proxy.HibernateProxy;
 import org.hibernate.engine.SessionImplementor;
+import org.hibernate.engine.SessionFactoryImplementor;
 import org.hibernate.Session;
 
 import java.util.*;
@@ -66,20 +67,21 @@
 		return session.getEntityPersister(null, obj).getIdentifier(obj, session.getEntityMode());
 	}
 
-	public static Object getTargetFromProxy(HibernateProxy proxy) {
-		if (!proxy.getHibernateLazyInitializer().isUninitialized()) {
-			return proxy.getHibernateLazyInitializer().getImplementation();
-		}
+    public static Object getTargetFromProxy(SessionFactoryImplementor sessionFactoryImplementor, HibernateProxy proxy) {
+        if (!proxy.getHibernateLazyInitializer().isUninitialized()) {
+            return proxy.getHibernateLazyInitializer().getImplementation();
+        }
 
-		Session tempSession = proxy.getHibernateLazyInitializer().getSession().getFactory().openTemporarySession();
-		try {
-			proxy.getHibernateLazyInitializer().setSession((SessionImplementor) tempSession);
-			proxy.getHibernateLazyInitializer().initialize();
-			return proxy.getHibernateLazyInitializer().getImplementation();
-		} finally {
-			tempSession.close();
-		}
-	}
+        SessionImplementor sessionImplementor = proxy.getHibernateLazyInitializer().getSession();
+        Session tempSession = sessionImplementor==null ? sessionFactoryImplementor.openTemporarySession() : sessionImplementor.getFactory().openTemporarySession();
+        try {
+            proxy.getHibernateLazyInitializer().setSession((SessionImplementor) tempSession);
+            proxy.getHibernateLazyInitializer().initialize();
+            return proxy.getHibernateLazyInitializer().getImplementation();
+        } finally {
+            tempSession.close();
+        }
+    }
 
     public static boolean objectsEqual(Object obj1, Object obj2) {
         if (obj1 == null) {
@@ -113,7 +115,7 @@
     }
 
     /**
-     * Transforms a list of arbitrary elements to a list of index-element pairs. 
+     * Transforms a list of arbitrary elements to a list of index-element pairs.
      * @param list List to transform.
      * @return A list of pairs: ((0, element_at_index_0), (1, element_at_index_1), ...)
      */



More information about the hibernate-commits mailing list