Fix unclosed session when error
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jackrabbit / src / main / java / org / argeo / jackrabbit / remote / ScopedSessionProvider.java
index c3bcc01a722e0f470b59523f2a729e887a6e4f12..ffe6df9b1c1dfb853dd385d30eee5b83f4571c16 100644 (file)
@@ -109,10 +109,12 @@ public class ScopedSessionProvider implements SessionProvider, Serializable {
                if (jcrSession == null)
                        try {
                                Session session = login(rep, workspace);
-                               if (!session.getUserID().equals(springUser))
+                               if (!session.getUserID().equals(springUser)) {
+                                       JcrUtils.logoutQuietly(session);
                                        throw new ArgeoException("Spring Security user '"
                                                        + springUser + "' not in line with JCR user '"
                                                        + session.getUserID() + "'");
+                               }
                                currentRepositoryName = requestJcrRepository;
                                // do not use workspace variable which may be null
                                currentWorkspaceName = session.getWorkspace().getName();