Re: NullPointerException when using shared cache

From: Bryan Lewis (brya..aine.rr.com)
Date: Mon Sep 25 2006 - 10:05:17 EDT

  • Next message: Andrus Adamchik: "Re: NullPointerException when using shared cache"

    Okay, I installed the patched jar on our production servers. It'll be
    difficult to say for sure that the problem was fixed, seeing as how it
    happened to us only once this year. The absence of a report from me
    will mean that things at least didn't get any worse. :-)

    Andrus Adamchik wrote:
    > 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.synchronizedObjectsFromDataRows(ObjectResolver.java:137)
    >>>
    >>>
    >>> at
    >>> org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectConversion(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.synchronizedObjectsFromDataRows(ObjectResolver.java:134)
    >>>
    >>>
    >>> at
    >>> org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectConversion(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 : Mon Sep 25 2006 - 10:06:28 EDT