HHH-4791 - Invalid assumption made in org.hibernate.envers.tools.Tools#getTargetFromProxy
git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@18548 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
parent
69d7a853f1
commit
062c5b6ccc
|
@ -73,12 +73,22 @@ public class Tools {
|
|||
}
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue