commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thilko Richter" <thilk...@gmx.de>
Subject Re: LRUMap NullpointerException
Date Sun, 18 Jun 2006 08:23:25 GMT
Hi there,

we used Version 3.2 and synchronized all access to LRUMap. WE get this IllegalStateException.
Can you reproduce this behauviour?





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..f1d2ce[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-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.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)



Thanks a lot,

Thilko



After extensive testing, we can only reproduce this when the map has not 
been correctly synchronized, or a mutable key has been used (as opposed 
to an immutable one).

If you upgrade to collections v3.2 you will get extra logging which may 
help diagnose the problem.

Stephen

Thilko Richter wrote:
> Hi all,
> 
> I am working with Cayenne and I ´ve get the following Exception:
> 
> Caused by: 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: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 org.objectstyle.cayenne.access.DataContextFaults$ToOneFault.doResolveFault(DataContextFaults.java:144)
> 	at org.objectstyle.cayenne.access.DataContextFaults$ToOneFault.resolveFault(DataContextFaults.java:117)
> 	at org.objectstyle.cayenne.CayenneDataObject.readProperty(CayenneDataObject.java:245)
> 	at com.conergy.sunreader.sr2.back.auto._TblAccount.getTblPerson(Unknown Source)
> 	at com.conergy.sunreader.sr2.back.dao.UserDAO.setAccountPersonData(Unknown Source)
> 	at com.conergy.sunreader.sr2.back.dao.UserDAO.getUser(Unknown Source)
> 	at com.conergy.sunreader.sr2.back.dao.UserDAO.login(Unknown Source)
> 	at com.conergy.sunreader.sr2.back.proxy.CayenneProxy.login(Unknown Source)
> 	at com.conergy.sunreader.sr2.back.BusinessFacade.login(Unknown Source)
> 	at com.conergy.sunreader.sr2.struts.actions.Sr2BaseAction.loginUser(Unknown Source)
> 	... 31 more
> 
> 
> We have posted this exception in cayenne newsgroup before and we found out, that the
caller of LRUMap is responsible for the thread safety. We´ve changed some methods calls
in
caeynne temporarily, but we still get this exception. Could anyone help us and tell, waht
was going wrong here?
> 
> We using commons-collection v.3.1
> 
> This behauvior occurs when the machine is under heavy load and a lot threads access are
created.
> 
> Thanks in advance,
> 
> Thilko

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


-- 


Echte DSL-Flatrate dauerhaft für 0,- Euro*!
"Feel free" mit GMX DSL! http://www.gmx.net/de/go/dsl

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message