You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cayenne.apache.org by Lothar Krenzien <lk...@web.de> on 2006/06/14 18:21:18 UTC

IllegalStateException in DataRowStore (thrown by LRUMap)

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.DataRow@1f1d2ce[values={description=inserted, status=ins}, version=-9223372036854491432, replaces=-9223372036854775808] previous=<ObjectId:TblEffBlockDataeffBlockDataId=24455598>=org.objectstyle.cayenne.DataRow@4bac35[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.DataRow@1a87890[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-dev@jakarta.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.synchronizedObjectsFromDataRows(ObjectResolver.java:134)
at org.objectstyle.cayenne.access.DataDomainQueryAction.interceptObjectConversion(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


Re: IllegalStateException in DataRowStore (thrown by LRUMap)

Posted by Andrus Adamchik <an...@objectstyle.org>.
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.DataRow@1f1d2c 
> e[values={description=inserted, status=ins},  
> version=-9223372036854491432, replaces=-9223372036854775808]  
> previous=<ObjectId:TblEffBlockDataeffBlockDataId=24455598>=org.objects 
> tyle.cayenne.DataRow@4bac35[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.DataRow@1a87890[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- 
> dev@jakarta.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
>
>