[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2442) ClassCastException loading from second level cache

Thomas Goorden (JIRA) noreply at atlassian.com
Wed Mar 14 06:09:09 EDT 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2442?page=comments#action_26453 ] 

Thomas Goorden commented on HHH-2442:
-------------------------------------

We are also experiencing this bug. When loading large datasets, the cache keys start to go flaky and we get classcastexceptions on properties of an identifier (Embedded Id) class when retrieving values from the cache. Since the embedded key has two different types of identifying fields (String and int), mixing those up would explain the classcastexception.

Is there a work-around? We've switched the caching mechanism to a manual system with our own cachekey in certain parts. This does seem to help, but it seems impossible to do for "internal" Hibernate caching (find, query, mapping induced). 

Configuration:
- WinXP
- JRE 1.5 (Sun)is
- Hibernate 3.2 (with JPA functionality enabled)

> ClassCastException loading from second level cache
> --------------------------------------------------
>
>          Key: HHH-2442
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2442
>      Project: Hibernate3
>         Type: Bug

>   Components: core
>     Versions: 3.2.1, 3.2.2, 3.2.0.ga
>  Environment: Linux 2.6.15-27-686 #1 SMP PREEMPT Fri Dec 8 18:00:07 UTC 2006 i686 GNU/Linux
>     Reporter: Marcio Moraes
>     Priority: Blocker

>
>
> I'm getting a error when using hibernate 3.2.2.ga with cache (JBoss-Cache) cluster.
> When hibernate get a entity from second level cache it confuses the arrays of values against array of types.
> So in some situations i got ClassCastException ...
> Looking up CacheEntry code at assemble method i saw:
>     private static Object[] assemble(
>             final Serializable[] values,
>             final Object result,
>             final Serializable id,
>             final EntityPersister persister,
>             final Interceptor interceptor,
>             final EventSource session)
>     throws HibernateException {
>         //assembled state gets put in a new array (we read from cache by value!)
>         Object[] assembledProps = TypeFactory.assemble(
>                 values,
>                 persister.getPropertyTypes(),
>                 session, result
>             );
> The issue is values (Serializeble[]) is in wrong order compared with persister.getPropertyTypes() (Type[]).
> If only one cache instance is running it doesnt occurs ...
> I am using Linux.
> Att,
> Márcio Moraes

-- 
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