You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2013/07/19 15:56:00 UTC

svn commit: r1504880 - /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java

Author: mduerig
Date: Fri Jul 19 13:56:00 2013
New Revision: 1504880

URL: http://svn.apache.org/r1504880
Log:
OAK-803: Backwards compatibility of long-lived sessions
log only once

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java?rev=1504880&r1=1504879&r2=1504880&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java Fri Jul 19 13:56:00 2013
@@ -65,6 +65,7 @@ public class SessionDelegate {
     private long updateCount = 0;
 
     private long lastAccessed = System.currentTimeMillis();
+    private boolean warnIfIdle = true;
     private boolean refreshAtNextAccess = false;
 
     /**
@@ -106,12 +107,13 @@ public class SessionDelegate {
             long timeElapsed = now - lastAccessed;
             // Don't refresh if this operation is a refresh operation itself
             if (!sessionOperation.isRefresh()) {
-                if (!refreshAtNextAccess
+                if (warnIfIdle && !refreshAtNextAccess
                         && timeElapsed > MILLISECONDS.convert(1, MINUTES)) {
-                    // Warn if this session has been idle too long
+                    // Warn once if this session has been idle too long
                     log.warn("This session has been idle for " + MINUTES.convert(timeElapsed, MILLISECONDS) +
                             " minutes and might be out of date. Consider using a fresh session or explicitly" +
                             " refresh the session.", initStackTrace);
+                    warnIfIdle = false;
                 }
                 if (refreshAtNextAccess || timeElapsed >= refreshInterval) {
                     // Refresh if forced or if the session has been idle too long