From: <leg...@at...> - 2003-09-17 21:31:56
|
The following issue has been updated: Updater: John Kristian (mailto:jkr...@do...) Date: Wed, 17 Sep 2003 4:31 PM Comment: debug.zip (attached) contains a test case that logs more information, which I hope will help isolate the problem. Part of the problem, it appears, is that Hibernate uses a RolePermissionAssociation$Id as a key for a JCS region map, but the Id refers to a Role whose id has not been loaded. Subsequently, Hibernate loads the Role id, which changes the RolePermissionAssociation$Id.hashCode(), which causes the Id to be 'lost' in the JCS region map. Eventually, the JCS region contains several such lost keys in its map but nothing in its list (all entries were spooled because the map contains more keys than the cache size limit). At this point, JCS throws the problematic exception. Changes: Attachment changed to debug.zip --------------------------------------------------------------------- For a full history of the issue, see: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-342&page=history --------------------------------------------------------------------- View the issue: http://opensource.atlassian.com/projects/hibernate/secure/ViewIssue.jspa?key=HB-342 Here is an overview of the issue: --------------------------------------------------------------------- Key: HB-342 Summary: JCSCache.put java.lang.Error: update: last is null! Type: Bug Status: Unassigned Priority: Major Project: Hibernate2 Components: core Versions: 2.1 beta 3 Assignee: Reporter: John Kristian Created: Wed, 17 Sep 2003 2:29 PM Updated: Wed, 17 Sep 2003 4:31 PM Environment: Windows XP, JBoss 3, Microsoft SQL Server Description: With Hibernate 2.1 beta 3b (but not 2.0.2), the following errors occur. I will supply a small test case and more detailed log, soon. 12:19:30,390 ERROR [LRUMemoryCache] verifycache: map does NOT contain key, what the HECK! 12:19:30,390 ERROR [TestCache] testScan failed java.lang.Error: update: last is null! at org.apache.jcs.engine.memory.lru.LRUMemoryCache.update(LRUMemoryCache.java:140) at org.apache.jcs.engine.control.CompositeCache.update(CompositeCache.java:241) at org.apache.jcs.engine.control.CompositeCache.update(CompositeCache.java:200) at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:311) at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:279) at net.sf.hibernate.cache.JCSCache.put(JCSCache.java:34) at net.sf.hibernate.cache.ReadWriteCache.put(ReadWriteCache.java:86) at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:2137) at net.sf.hibernate.loader.Loader.doResultSet(Loader.java:221) at net.sf.hibernate.loader.Loader.doFind(Loader.java:113) at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:661) at net.sf.hibernate.loader.Loader.loadEntity(Loader.java:676) at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:52) at net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:44) at net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:378) at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:2059) at net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1913) at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1872) at net.sf.hibernate.type.ManyToOneType.resolveIdentifier(ManyToOneType.java:84) at net.sf.hibernate.type.EntityType.assemble(EntityType.java:95) at net.sf.hibernate.collection.Set.<init>(Set.java:94) at net.sf.hibernate.type.SetType.assembleCachedCollection(SetType.java:36) at net.sf.hibernate.collection.CollectionPersister.getCachedCollection(CollectionPersister.java:370) at net.sf.hibernate.type.PersistentCollectionType.getCollection(PersistentCollectionType.java:67) at net.sf.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentCollectionType.java:178) at net.sf.hibernate.type.PersistentCollectionType.assemble(PersistentCollectionType.java:130) at net.sf.hibernate.impl.CacheEntry.assemble(CacheEntry.java:54) at net.sf.hibernate.impl.CacheEntry.assemble(CacheEntry.java:46) at net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:2044) at net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1913) at net.sf.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1872) at net.sf.hibernate.type.ManyToOneType.resolveIdentifier(ManyToOneType.java:84) at net.sf.hibernate.type.EntityType.nullSafeGet(EntityType.java:111) at net.sf.hibernate.impl.IteratorImpl.postNext(IteratorImpl.java:67) at net.sf.hibernate.impl.IteratorImpl.next(IteratorImpl.java:87) at com.docent.lms.entities.tests.hibernate.TestCache.scan(TestCache.java:104) --------------------------------------------------------------------- JIRA INFORMATION: 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 If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira |