[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3357?page=c...
]
Tim Downey commented on HHH-3357:
---------------------------------
A simpler change may be to simply change line 115 of AbstractLazyInitializer from
if (isConnectedToSession()) {
to
if (s != null && isConnectedToSession()) {
Is there any downside to skipping the check if the new session is null? It seems harmless
enough and definitely provides a major bump in performance if the session has a large
number of objects within it.
session.clear() takes too long
------------------------------
Key: HHH-3357
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3357
Project: Hibernate Core
Issue Type: Improvement
Components: core
Affects Versions: 3.2.5, 3.2.6
Reporter: Jay Erb
Attachments: LazyInitializerPatch.txt
Clearing a session that contains a large number of Proxies takes a very long time. The
reason for this is that null is set on the LazyInitializer when clearing the
StatefulPersistenceContext, whenever a new session is set on an AbstractLazyInitializer, a
check is done to see if the AbstractLazyInitializer is still attached to its previous
session (and correctly throws an exception if it is). This check performs a linear search
through all Proxies in the PersistenceContext. Since we're setting the session to
null, do we really need to do this expensive linear search?
I propose we not perform the linear search if the session being set on the
AbstractLazyInitializer is null.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira