[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2442?page=c...
]
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....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira