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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]