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 2014/11/07 14:02:16 UTC

svn commit: r1637368 - in /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation: ChangeProcessor.java ObservationManagerImpl.java

Author: mduerig
Date: Fri Nov  7 13:02:15 2014
New Revision: 1637368

URL: http://svn.apache.org/r1637368
Log:
OAK-2254: Observation events accessibility check should respect session refresh settings
Applied patch. Thanks Alex, for spotting this.

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java?rev=1637368&r1=1637367&r2=1637368&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java Fri Nov  7 13:02:15 2014
@@ -277,7 +277,7 @@ class ChangeProcessor implements Observe
                     }
                 }
             } catch (Exception e) {
-                LOG.warn("Error while dispatching observation events", e);
+                LOG.warn("Error while dispatching observation events for " + tracker, e);
             }
         }
         previousRoot = root;

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java?rev=1637368&r1=1637367&r2=1637368&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java Fri Nov  7 13:02:15 2014
@@ -20,7 +20,6 @@ package org.apache.jackrabbit.oak.jcr.ob
 
 import static com.google.common.collect.Lists.newArrayList;
 import static com.google.common.collect.Sets.newHashSet;
-import static java.util.Collections.emptySet;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
 import static org.apache.jackrabbit.oak.commons.PathUtils.isAncestor;
@@ -48,8 +47,10 @@ import org.apache.jackrabbit.api.observa
 import org.apache.jackrabbit.commons.iterator.EventListenerIteratorAdapter;
 import org.apache.jackrabbit.commons.observation.ListenerTracker;
 import org.apache.jackrabbit.oak.api.ContentSession;
+import org.apache.jackrabbit.oak.api.Root;
 import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
 import org.apache.jackrabbit.oak.jcr.session.SessionContext;
+import org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation;
 import org.apache.jackrabbit.oak.namepath.NamePathMapper;
 import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager;
 import org.apache.jackrabbit.oak.plugins.observation.CommitRateLimiter;
@@ -119,8 +120,14 @@ public class ObservationManagerImpl impl
             @Nonnull
             @Override
             public PermissionProvider create() {
-                return authorizationConfig.getPermissionProvider(
-                        sessionDelegate.getRoot(), sessionDelegate.getWorkspaceName(), principals);
+                Root root = sessionDelegate.safePerform(new SessionOperation<Root>("refresh-root") {
+                    @Override
+                    public Root perform() {
+                        return sessionDelegate.getRoot();
+                    }
+                });
+                return authorizationConfig.getPermissionProvider(root,
+                        sessionDelegate.getWorkspaceName(), principals);
             }
         };
     }