[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2316?page=c...
]
Steve Ebersole commented on HHH-2316:
-------------------------------------
Well the simple workaround is to cache them in separate regions. This is what Hibernate
does normally. I'll fix this issue as you suggested because what you said makes
sense. However, you should note that I will not guarentee that what you are trying
(sharing cache regions) will work in all cases.
What was the reasoning for sharing regions anyway?
org.hibernate.cache.CacheKey.equals() can cause
PropertyAccessException to be thrown
------------------------------------------------------------------------------------
Key: HHH-2316
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2316
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.1
Environment: Windows XP / Sybase 12.5 / Java 1.5.0_09 / ehcache 1.2.4
Reporter: Joel Caplin
Assignee: Steve Ebersole
Attachments: cacheTest.zip
org.hibernate.cache.CacheKey.equals() uses lazy evaluation in its return clause: it first
calls type.isEqual() and, if true, then calls entityOrRoleName.equals().
I am having difficulty reproducing this bug in the form of a test case owing to the
complexity of our model and the large amount of data in question-- however, in certain
circumstances, where the entityOrRoleName's are NOT equal, calling type.isEqual()
yields a PropertyAccessException.
When this bug manifests itself (a PropertyAccessException is thrown), it causes ALL
future Hibernate requests to throw a similar exception, thus rendering our service
unusable.
This is fixed when the lazy evaluation is done the other way around: call
entityOrRoleName.equals() prior to type.isEqual() - cheap string comparision vs an
expensive call which has a large call tree under it.
--
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