Re: IllegalStateException in DataRowStore (thrown by LRUMap)

From: Lothar Krenzien (lkrenzie..eb.de)
Date: Thu Jun 15 2006 - 05:43:15 EDT

  • Next message: Andrus Adamchik: "Re: IllegalStateException in DataRowStore (thrown by LRUMap)"

    I'm using the recent 3.2 version of commons collection and the recent 1.2 RC1 cayenne version. The exception occurs mostly on high high activitity on the server. But then very often. Basicly my clients call a servlet and make a post. The servlet should import the posted data into a database (MSSQL 2000) using DAO classes. The relevant methods in the DAO classes are all synchronized (even it should not be necessary).

    Hope that helps
    Lothar

    > While I don't have the answers, it would be helpful if you could
    > provide more details:
    >
    > 1. What version of commons-collections do you have (I checked 3.1 and
    > the line numbers do not match with the stack below)
    > 2. Does it happen as a result of a certain sequence of events, or
    > does it happen randomly under heavy load?
    >
    > Andrus
    >
    >
    > On Jun 14, 2006, at 8:21 PM, Lothar Krenzien wrote:
    >
    > > Hi,
    > >
    > > I'm not sure where to post it, but because I get this error by
    > > cayenne I try it first here. A few days ago I reported a NPE within
    > > the class apache.commons.map.LRUMap wich is used by the class
    > > "DataRowStore". After synchronizing all access to the corresponding
    > > field the NPE went away but now I have another exception:
    > >
    > > 2006-06-14 00:26:22,359 [ERROR]
    > > BaseDataLoggerGate.com.sunreader.sr2.gate.BaseDataLoggerGate.doPost: >
    > > java.lang.IllegalStateException: Entry.next=null, data[removeIndex]
    > > =<ObjectId:TblStatusstatus=ins>=org.objectstyle.cayenne.DataRo..f1d2c
    > > e[values={description=inserted, status=ins},
    > > version=-9223372036854491432, replaces=-9223372036854775808]
    > > previous=<ObjectId:TblEffBlockDataeffBlockDataId=24455598>=org.objects
    > > tyle.cayenne.DataRo..bac35[values={tempValue=31.35,
    > > efficiencyValue=1.0761, effBlockDataId=24455598, energyValue=8.16,
    > > efficiencyBlockId=767, status=ins, irradiationValue=673.98,
    > > earnings=4.4064, importEffBlockDataId=1042169, dataDate=Mon Jun 12
    > > 11:30:00 CEST 2006, co2Saving=6.12}, version=-9223372036854494908,
    > > replaces=-9223372036854495032] key=<ObjectId:TblLoggerloggerId=923>
    > > value=org.objectstyle.cayenne.DataRo..a87890[values={plantId=923,
    > > newSerialNumber=null, commChannelType=analog, loggerProductId=1,
    > > loggerId=923, serialNumber=DL-NE101-01331,
    > > commChannelManufacturer=Conergy}, version=-9223372036854491407,
    > > 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:621)
    > > at
    > > org.objectstyle.cayenne.access.DataRowStore.processSnapshotChanges
    > > (DataRowStore.java:575)
    > > at
    > > org.objectstyle.cayenne.access.DataRowStore.snapshotsUpdatedForObjects
    > > (DataRowStore.java:314)
    > > 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:375)
    > > at org.objectstyle.cayenne.access.DataDomainQueryAction.execute
    > > (DataDomainQueryAction.java:151)
    > > at org.objectstyle.cayenne.access.DataDomain.onQuery
    > > (DataDomain.java:765)
    > > 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)
    > > at
    > > com.conergy.sunreader.sr2.back.dao.ProductDAO.isLoggerAlreadyAvailable
    > > (Unknown Source)
    > >
    > > I't would be glad to get an answer as far as possible.
    > >
    > > Thanks, Lothar

    ______________________________________________________________________
    XXL-Speicher, PC-Virenschutz, Spartarife & mehr: Nur im WEB.DE Club!
    Jetzt gratis testen! http://freemail.web.de/home/landingpad/?mc=021130



    This archive was generated by hypermail 2.0.0 : Thu Jun 15 2006 - 05:43:42 EDT