Ayhan, Wolfgang and others who have this synchronization issue - I
posted a patched version of 1.2.1 Cayenne:
http://dev.objectstyle.org/~andrus/cayenne-1.2.1-CAY-565-patched.tar.gz
I would appreciate very much if you could test it in your environment
and let me know whether it fixes the problem. I posted more comments
and the exact patches that were applies on Jira:
http://issues.apache.org/cayenne/browse/CAY-565
Thanks
Andrus
On Sep 12, 2006, at 9:35 AM, Andrus Adamchik wrote:
> 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.synchronizedObjectsFrom
>> DataRows(ObjectResolver.java:137)
>>
>> at
>> org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectC
>> onversion(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.snapshotsUpdatedForObject
>> s(DataRowStore.java:313)
>>
>> at
>> org.objectstyle.cayenne.access.ObjectResolver.objectsFromDataRows
>> (ObjectResolver.java:159)
>>
>> at
>> org.objectstyle.cayenne.access.ObjectResolver.synchronizedObjectsFrom
>> DataRows(ObjectResolver.java:134)
>>
>> at
>> org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectC
>> onversion(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.kondo..reenet-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 : Sun Sep 24 2006 - 20:32:42 EDT