You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Angela Schreiber <an...@adobe.com> on 2011/02/01 11:57:40 UTC

Re: Seeking help finding session leak using davex.

hi luis

could you please shed some light on the circumstances that
produces the error log entry? with the information present
it's hard to tell what could go wrong...

could you please post a testcase to execute with the client side or
on the spi2dav layer directly that allows to reproduce the problem? 
alternatively the corresponding http conversation log could be helpful
(althought probably much more verbose).

see AbstractJCRTest or AbstractSPITest for base classes
used as starting point for writing test cases against the
jcr-client or the SPI.

thanks
angela

On 1/31/11 3:40 PM, Luis Muniz wrote:
> Bump?
>
> On Wed, Jan 26, 2011 at 3:58 PM, Luis Muniz<ne...@gmail.com>  wrote:
>
>> Hi,
>>
>> I am using davex to access a jackrabbit 2.2.1 repository remotely.
>>
>> Everything works OK, only I see these messages in the jackrabbit log:
>>
>> 2011-01-26 13:11:24.713 ERROR [444092735@qtp-1957835280-22]
>> JCRWebdavServer.java:210 Failed to add reference to session. No entry in
>> cache found.
>> 2011-01-26 13:11:24.715 ERROR [444092735@qtp-1957835280-22]
>> JCRWebdavServer.java:246 Failed to remove reference from session. No entry
>> in cache found.
>> 2011-01-26 13:11:26.549 WARN  [Finalizer] SessionImpl.java:1261
>> Unclosed session detected. The session was opened here:
>>
>> (and a stack trace, i can provide it on demand)
>>
>> In my client application, I am pretty sure that I call logout to every
>> session I obtain with login, i have verified by using a counter, counting
>> the number of open sessions.
>>
>> I have read previous posts explaining that the warning is cause by an
>> abandoned session taht is garbage collected. However when I see the 2
>> previous messages, if I understand the relavant code portion in
>> JCRWebdavServer correxctly:
>>
>>
>>          private void  addReference(DavSession session, Object reference) {
>>              HashSet referenceSet = sessionMap.get(session);
>>              if (referenceSet != null) {
>>                  referenceSet.add(reference);
>>                  referenceToSessionMap.put(reference, session);
>>              } else {
>>                  log.error("Failed to add reference to session. No entry in
>> cache found.");
>>              }
>>          }
>>
>> This would mean that a reference to the session was not added, so it
>> follows naturally that the session is orphaned when garbage collected.
>>
>> I create teh session by calling Repository#login and release it via
>> Session#logout
>>
>> Is there something else I should be doing?
>>
>> Thank you for any insight.
>>
>> Luis
>>