[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-2316) org.hibernate.cache.CacheKey.equals() can cause PropertyAccessException to be thrown

Steve Ebersole (JIRA) noreply at atlassian.com
Wed May 9 11:45:04 EDT 2007


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steve Ebersole updated HHH-2316:
--------------------------------

    Fix Version/s:     (was: 3.2.4)

Are you really putting different entity data into the same cache region?  That is clearly not a tested scenario, nor would it be recommended.  However, it is allowable.

Joel, is that the underlying reason for your issues as well?  Are you pushing cached data from separate entities into the same cache region?

> 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.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list