Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session

Session error java.lang.IllegalStateException: This session has been closed

Avatar

Level 1

Hello

We are using a sub-service user to get a session. We are using the session for reading and writing ACL's in the repository. However, we are facing the below error repeatedly. Sadly whenever this error occurs, the code breaks and continues.

java.lang.IllegalStateException: This session has been closed

at com.google.common.base.Preconditions.checkState(Preconditions.java:150)

at org.apache.jackrabbit.oak.core.ContentSessionImpl.checkLive(ContentSessionImpl.java:85)

at org.apache.jackrabbit.oak.core.MutableRoot.checkLive(MutableRoot.java:172)

at org.apache.jackrabbit.oak.core.MutableRoot.hasPendingChanges(MutableRoot.java:295)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.hasPendingChanges(SessionDelegate.java:476)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.refresh(SessionDelegate.java:505)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.prePerform(SessionDelegate.java:611)

at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:205)

at org.apache.jackrabbit.oak.jcr.delegate.AuthorizableDelegator.getPrincipal(AuthorizableDelegator.java:99)

Below is a code snippet which we are using for creating the session.

private Session getServiceSession(ResourceResolverFactory resolverFactory) {

        Session session = null;

        ResourceResolver resolver = null;

        try {

            Map<String, Object> paramMap = new HashMap<String, Object>();

            paramMap.put(ResourceResolverFactory.SUBSERVICE, "sub-service-user");

            resolver = resolverFactory.getServiceResourceResolver(paramMap);

            session = resolver.adaptTo(Session.class);

            log.debug(" session object{}", session);

        }

        catch (LoginException e) {

            log.error(e);

        }

        return session;

    }

We call this method whenever we need the session.

Any suggestions?

0 Replies