Hi Tore,

the exception occured very often for me in the get/post method of a servlet. 
After days of searching I found out that I created a new cayenne context for 
every requests and assigned it to a static variable. And because all other 
methods used this static variable, which was changed in the meantime by another 
request, I got the exception. After creating a new context in every post / get 
request it went away.

Here's an example of what I did first:

------------------ first -----------------------------------
private static DataContext context; 


private void doPost( ... ) {
 context = ServletUtil.getSessionContext(request.getSession());
 ....
 getLoggerConfig(context );
 ...
}


After changing it like this, the problems went away.

------------------ second-----------------------------------

private void doPost( ... ) {
 DataContext context = ServletUtil.getSessionContext(request.getSession());
 ....
 getLoggerConfig(context );
 ...
}


But unfortunately after 3 or 4 weeks I got the same error again, but only very 
rarly. Now I was told that it  is forbiden to start a new thread in a servlet. 
And that's what I did. So hopefully the exception is definitly solved now. 

Also a colleague told me that it can cause problems to create the cayenne 
context in a servlet like above. Instead of that it should be better to do it 
like this:

DataDomain domain = Configuration.getSharedConfiguration().getDomain();
DataContext dctx = domain.createDataContext();

Maybe some one other can comment it ? 

Hope that helps.
Lothar



> -----Ursprüngliche Nachricht-----
> Von: [email protected]
> Gesendet: 27.07.06 10:39:32
> An: [email protected]
> Betreff: LRUMap.reuseMapping exception with 1.2B3


> Hello.
> 
> I just got a exception from LRUMap.reuseMapping using cayenne-1.2B3.  
> I remember this discussion earlier this summer, but is it fixed in  
> 1.2 final? CAY-565 are resolved with resolution "Cannot Reproduce"..
> 
> java.lang.NullPointerException
>       at org.apache.commons.collections.map.LRUMap.reuseMapping 
> (LRUMap.java:235)
>       at org.apache.commons.collections.map.LRUMap.addMapping(LRUMap.java: 
> 211)
>       at org.apache.commons.collections.map.AbstractHashedMap.put 
> (AbstractHashedMap.java:314)
>       at  
> org.objectstyle.cayenne.access.DataDomainQueryAction.interceptOIDQuery 
> (DataDomainQueryAction.java:187)
>       at org.objectstyle.cayenne.access.DataDomainQueryAction.execute 
> (DataDomainQueryAction.java:142)
>       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.DataObjectUtils.objectForQuery 
> (DataObjectUtils.java:290)
>       at org.objectstyle.cayenne.DataObjectUtils.objectForPK 
> (DataObjectUtils.java:276)
>       at org.objectstyle.cayenne.DataObjectUtils.objectForPK 
> (DataObjectUtils.java:185)
> 
>   - Tore.


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

Reply via email to