CAY-565 was closed as "Can not reproduce", so there was no fix. I
reopened this issue, bumping the priority to "Critical". I will add
synchronization, even though I can't test it.
Andrus
On Sep 12, 2006, at 5:51 AM, Ayhan Kondoz wrote:
> Hello,
>
>
>
> I am getting NullPointerExceptions when I am trying to use the
> shared caching feature of cayenne.
>
>
>
> I have 3 servers. Each server has it's own tomcat / axis webservice
> and I have an avarage access of about 4 - 5 connections per second.
> Each connection results in about 3 - 4 select queries and about 20%
> of the connections result in an additional 2 - 3 insert / update
> queries. So the servers are working at pretty heavy load.
>
>
>
> Yesterday I implemented the usage of cayenne's (remote) shared
> caching feature using JavaGroups and at first everything seemed to
> work just fine. But after about 1 hour, one of the servers started
> to produce NullPointerExceptions on every connection. i found this
> bug ( http://issues.apache.org/cayenne/browse/CAY-565 ) which seems
> to address my problem but the status is resolved?!
>
>
>
> i tried cayenne 1.2 and 1.2B1 and in both cases got this exceptions
> but only if shared caching is activated. When I deactivate caching
> everything seems to work fine again.
>
> It seems that there is a problem with the syncronization. This
> error occursed when under heavy load and a lot of threads are
> active at the same time. But if it is really a syncronization
> problem the same error could occure on every system (even if much
> more unlikely) even if not under heavy load.
>
>
>
> Cheers
>
> Ayhan Kondoz
>
>
>
>
>
> The exception when using common-collections 3.2
>
>
>
> [11.09.06 21:30:32] (ERROR): Entry.next=null, data[removeIndex]
> =<ObjectId:Customer,
> id=534080>=org.objectstyle.cayenne.DataRo..da158[values=
> {suspended=false, login=christian.hantke1, rec_create=Tue May 02
> 00:00:00 CEST 2006, rec_change=Tue May 02 20:18:34 CEST 2006,
> last_updated=Mon Sep 11 21:28:26 CEST 2006, cid=709779451,
> id=534080, mandant_id=3}, version=-9223372036854422785,
> replaces=-9223372036854775808] previous=<ObjectId:Customer,
> d=534080>=org.objectstyle.cayenne.DataRo..da158[values=
> {suspended=false, login=christian.hantke1, rec_create=Tue May 02
> 00:00:00 CEST 2006, rec_change=Tue May 02 20:18:34 CEST 2006,
> last_updated=Mon Sep 11 21:28:26 CEST 2006, cid=709779451,
> id=534080, mandant_id=3}, version=-9223372036854422785,
> replaces=-9223372036854775808] key=<Ob
>
> jectId:Customer, id=364956>
> value=org.objectstyle.cayenne.DataRo..26844[values=
> {suspended=false, login=nadda89, rec_create=Thu Mar 30 00:00:00
> CEST 2006, rec_change=Thu Mar 30 22:19:00 CEST 2006,
> last_updated=Fri Aug 04 16:09:35 CEST 2006, cid=705229711,
> id=364956, mandant_id=3}, version=-9223372036854407476,
> replaces=-9223372036854775808] size=10000 maxSize=10000 Please
> check that your keys are immutable, and that you have used
> synchronization properly. If so, then please report this to commons-
> de..akarta.apache.org as a bug.
>
> java.lang.IllegalStateException: Entry.next=null, data[removeIndex]
> =<ObjectId:Customer,
> id=534080>=org.objectstyle.cayenne.DataRo..da158[values=
> {suspended=false, login=christian.hantke1, rec_create=Tue May 02
> 00:00:00 CEST 2006, rec_change=Tue May 02 20:18:34 CEST 2006,
> last_updated=Mon Sep 11 21:28:26 CEST 2006, cid=709779451,
> id=534080, mandant_id=3}, version=-9223372036854422785,
> replaces=-9223372036854775808] previous=<ObjectId:Customer,
> id=534080>=org.objectstyle.cayenne.DataRo..da158[values=
> {suspended=false, login=christian.hantke1, rec_create=Tue May 02
> 00:00:00 CEST 20 06, rec_change=Tue May 02 20:18:34 CEST 2006,
> last_updated=Mon Sep 11 21:28:26 CEST 2006, cid=709779451,
> id=534080, mandant_id=3}, version=-9223372036854422785,
> replaces=-9223372036854775808] key=<ObjectId:Customer, id=364956>
> value=org.objectstyle.cayenne.DataRo..26844[values=
> {suspended=false, login=nadda89, rec_create=Thu Mar 30 00:00:00
> CEST 2006, rec_change=Thu Mar 30 22:19:00 CEST 2006,
> last_updated=Fri Aug 04 16:09:35 CEST 2006, cid=705229711,
> id=364956, mandant_id=3}, version=-9223372036854407476,
> replaces=-9223372036854775808] size=10000 maxSize=10000 Please
> check that your keys are immutable, and that you have used
> synchronization properly. If so, then please report this to commons-
> de..akarta.apache.org as a bug.
>
> at org.apache.commons.collections.map.LRUMap.reuseMapping
> (LRUMap.java:300)
>
> at org.apache.commons.collections.map.LRUMap.addMapping
> (LRUMap.java:266)
>
> at org.apache.commons.collections.map.AbstractHashedMap.put
> (AbstractHashedMap.java:283)
>
> at
> org.objectstyle.cayenne.access.DataRowStore.processUpdatedSnapshots
> (DataRowStore.java:537)
>
> at
> org.objectstyle.cayenne.access.DataRowStore.processSnapshotChanges
> (DataRowStore.java:496)
>
> at
> org.objectstyle.cayenne.access.ObjectStore.snapshotsUpdatedForObjects(
> ObjectStore.java:559)
>
> at
> org.objectstyle.cayenne.access.ObjectResolver.objectsFromDataRows
> (ObjectResolver.java:162)
>
> at
> org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromD
> ataRows(ObjectResolver.java:137)
>
> at
> org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectCo
> nversion(DataDomainQueryAction.java:363)
>
> at
> org.objectstyle.cayenne.access.DataDomainQueryAction.execute
> (DataDomainQueryAction.java:151)
>
> at org.objectstyle.cayenne.access.DataDomain.onQuery
> (DataDomain.java:715)
>
> at
> org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery
> (ObjectContextQueryAction.java:249)
>
> at
> org.objectstyle.cayenne.access.DataContextQueryAction.execute
> (DataContextQueryAction.java:90)
>
> at org.objectstyle.cayenne.access.DataContext.onQuery
> (DataContext.java:1320)
>
> at org.objectstyle.cayenne.access.DataContext.performQuery
> (DataContext.java:1309)
>
>
>
> The exception when using common-collections 3.1
>
>
>
> [11.09.06 15:29:13] (ERROR):
>
> java.lang.NullPointerException
>
> at org.apache.commons.collections.map.LRUMap.reuseMapping
> (LRUMap.java:272)
>
> at org.apache.commons.collections.map.LRUMap.addMapping
> (LRUMap.java:243)
>
> at org.apache.commons.collections.map.AbstractHashedMap.put
> (AbstractHashedMap.java:282)
>
> at
> org.objectstyle.cayenne.access.DataRowStore.processUpdatedSnapshots
> (DataRowStore.java:612)
>
> at
> org.objectstyle.cayenne.access.DataRowStore.processSnapshotChanges
> (DataRowStore.java:571)
>
> at
> org.objectstyle.cayenne.access.DataRowStore.snapshotsUpdatedForObjects
> (DataRowStore.java:313)
>
> at
> org.objectstyle.cayenne.access.ObjectResolver.objectsFromDataRows
> (ObjectResolver.java:159)
>
> at
> org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFromD
> ataRows(ObjectResolver.java:134)
>
> at
> org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectCo
> nversion(DataDomainQueryAction.java:373)
>
> at
> org.objectstyle.cayenne.access.DataDomainQueryAction.execute
> (DataDomainQueryAction.java:151)
>
> at org.objectstyle.cayenne.access.DataDomain.onQuery
> (DataDomain.java:766)
>
> at
> org.objectstyle.cayenne.util.ObjectContextQueryAction.runQuery
> (ObjectContextQueryAction.java:253)
>
> at
> org.objectstyle.cayenne.access.DataContextQueryAction.execute
> (DataContextQueryAction.java:90)
>
> at org.objectstyle.cayenne.access.DataContext.onQuery
> (DataContext.java:1422)
>
> at org.objectstyle.cayenne.access.DataContext.performQuery
> (DataContext.java:1411)
>
>
>
>
>
>
>
> Ayhan Kondoz
>
>
>
> Software-Entwicklung
>
>
>
> ----------------------------------------------------------------------
> ------------
>
> Telefon: +49 (0) 40 513 06 616
>
> Telefax: +49 (0) 40 513 06 998 616
>
> E-Mail: ayhan.kondo..reenet-ag.de <mailto:ayhan.kondoz@freenet-
> ag.de>
>
> Website: http://www.freenet.de <http://www.freenet.de/> ; http://
> www.freenet-ag.de <http://www.freenet-ag.de/>
>
> ----------------------------------------------------------------------
> ------------
>
> freenet.de AG
>
> Deelbögenkamp 4c
>
> 22297 Hamburg
>
> ----------------------------------------------------------------------
> ------------
>
> Vorsitzender des Aufsichtsrates: Prof. Dr. Helmut Thoma
>
> Vorstand: Eckhard Spoerr (Vors.),
> Axel Krieger, Stephan Esch, Eric Berger
>
> Amtsgericht Hamburg HRB 74048
>
>
>
>
>
> Diese Information ist ausschließlich für die adressierte Person
> oder Organisation bestimmt und könnte vertrauliches und/oder
> privilegiertes Material enthalten. Personen oder Organisationen,
> für die diese Information nicht bestimmt ist, ist es nicht
> gestattet, diese zu lesen, erneut zu übertragen, zu verbreiten,
> anderweitig zu verwenden oder sich durch sie veranlasst zu sehen,
> Maßnahmen irgendeiner Art zu ergreifen. Sollten Sie diese Nachricht
> irrtümlich erhalten haben, bitten wir Sie, sich mit dem Absender in
> Verbindung zu setzen und das Material von Ihrem Computer zu löschen.
>
>
>
> The information transmitted is intended only for the person or
> entity to which it is addressed and may contain confidential and/or
> privileged material. Any review, retransmission, dissemination or
> other use of, or taking of any action in reliance upon, this
> information by persons or entities other than the intended
> recipient is prohibited. If you received this in error, please
> contact the sender and delete the material from any computer.
>
>
>
This archive was generated by hypermail 2.0.0 : Tue Sep 12 2006 - 09:36:09 EDT