You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Jan Haderka <ja...@magnolia-cms.com> on 2012/03/01 15:26:26 UTC

Re: RepositoryImpl closing sessions twice on shutdown

Seems like there is no wisdom or other interest in this issue, so I've logged it as https://issues.apache.org/jira/browse/JCR-3246 since I failed to find a solution for the problem apart from changing JR code.

Would be nice if this can be fixed in 1.4.1

Thanks,
Jan

On Feb 28, 2012, at 11:00 AM, Jan Haderka wrote:

> Hi,
> I ran into strange issue w/ JR 2.4.0. 
> On shutdown sessions are being closed twice which lead to the exception being logged as shown below. As far as I can tell RepositoryImpl has system sessions in the list of active sessions which is why it tries to close them twice - first time when closing all active sessions (RepositoryImpl.java:1078) and second time when disposing workspace (RepositoryImpl.java:1090).
> 
> However I have no idea if the system session is supposed to be on the list of active sessions or not. 
> Also it seems to be related to timing - I have troubles reproducing the issue with debugger attached to the server.
> 
> Is this known issue? Any pointers to what to look for when preventing this issue from occurring?
> 
> Thanks,
> Jan
> 
> 
> 2012-02-28 10:36:00,614 WARN  org.apache.jackrabbit.core.session.SessionState   : Attempt to close session-31 after it has already been closed. Please review your code for proper session management.
> java.lang.Exception: Stack trace of the duplicate attempt to close session-31
> 	at org.apache.jackrabbit.core.session.SessionState.close(SessionState.java:280)
> 	at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:943)
> 	at org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:392)
> 	at org.apache.jackrabbit.core.security.user.UserManagerImpl.loggedOut(UserManagerImpl.java:1115)
> 	at org.apache.jackrabbit.core.SessionImpl.notifyLoggedOut(SessionImpl.java:565)
> 	at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:979)
> 	at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doDispose(RepositoryImpl.java:2200)
> 	at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.dispose(RepositoryImpl.java:2154)
> 	at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1090)
> 	at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:1041)
> 	at org.apache.jackrabbit.core.jndi.BindableRepository.shutdown(BindableRepository.java:259)
> 	at org.apache.jackrabbit.core.jndi.RegistryHelper.unregisterRepository(RegistryHelper.java:94)
>        ...
> 2012-02-28 10:36:00,617 WARN  org.apache.jackrabbit.core.session.SessionState   : session-31 has already been closed. See the attached exception for a trace of where this session was closed.
> java.lang.Exception: Stack trace of  where session-31 was originally closed
> 	at org.apache.jackrabbit.core.session.SessionState.close(SessionState.java:275)
> 	at org.apache.jackrabbit.core.SessionImpl.logout(SessionImpl.java:943)
> 	at org.apache.jackrabbit.core.XASessionImpl.logout(XASessionImpl.java:392)
> 	at org.apache.jackrabbit.core.RepositoryImpl.doShutdown(RepositoryImpl.java:1078)
> 	at org.apache.jackrabbit.core.RepositoryImpl.shutdown(RepositoryImpl.java:1041)
> 	at org.apache.jackrabbit.core.jndi.BindableRepository.shutdown(BindableRepository.java:259)
> 	at org.apache.jackrabbit.core.jndi.RegistryHelper.unregisterRepository(RegistryHelper.java:94)
>        ...
> 
> 
>