You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/06/07 10:10:34 UTC
svn commit: r952134 -
/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java
Author: norman
Date: Mon Jun 7 08:10:33 2010
New Revision: 952134
URL: http://svn.apache.org/viewvc?rev=952134&view=rev
Log:
Only use one JCR Session per Request
Modified:
james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java
Modified: james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java?rev=952134&r1=952133&r2=952134&view=diff
==============================================================================
--- james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java (original)
+++ james/imap/trunk/jcr/src/main/java/org/apache/james/imap/jcr/AbstractJCRMapper.java Mon Jun 7 08:10:33 2010
@@ -36,11 +36,11 @@ import org.apache.james.imap.store.trans
public abstract class AbstractJCRMapper extends AbstractTransactionalMapper implements JCRImapConstants {
public final static String MAILBOXES_PATH = "mailboxes";
public final static String SUBSCRIPTIONS_PATH = "subscriptions";
+ private final static String JCR_SESSION = "JCR_SESSION";
- private Session session;
private final Log logger;
- private final MailboxSessionJCRRepository repository;
- private final MailboxSession mSession;
+ private final MailboxSessionJCRRepository repository;
+ private final MailboxSession mSession;
private final NodeLocker locker;
public AbstractJCRMapper(final MailboxSessionJCRRepository repository, MailboxSession mSession, NodeLocker locker, Log logger) {
@@ -69,8 +69,10 @@ public abstract class AbstractJCRMapper
* @return session
*/
protected Session getSession() throws RepositoryException{
+ Session session = (Session) mSession.getAttributes().get(JCR_SESSION);
if (session == null) {
session = repository.login(mSession);
+ mSession.getAttributes().put(JCR_SESSION, session);
}
return session;
}
@@ -116,6 +118,8 @@ public abstract class AbstractJCRMapper
* Logout from open JCR Session
*/
public void endRequest() {
+ Session session = (Session) mSession.getAttributes().remove(JCR_SESSION);
+
if (session != null) {
if (session.isLive())
session.logout();
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org