Author: stefanegli
Date: Thu Nov 17 13:39:21 2016
New Revision: 1770192

URL: http://svn.apache.org/viewvc?rev=1770192&view=rev
Log:
OAK-5123 : catch any exception in ChangeSetFilterImpl.excludes

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/ChangeSetFilterImpl.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/ChangeSetFilterImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/ChangeSetFilterImpl.java?rev=1770192&r1=1770191&r2=1770192&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/ChangeSetFilterImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/filter/ChangeSetFilterImpl.java
 Thu Nov 17 13:39:21 2016
@@ -30,9 +30,13 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.apache.jackrabbit.oak.plugins.observation.ChangeSet;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ChangeSetFilterImpl implements ChangeSetFilter {
 
+    private static final Logger LOG = 
LoggerFactory.getLogger(ChangeSetFilterImpl.class);
+    
     private final Set<String> rootIncludePaths;
     private final Set<Pattern> includePathPatterns;
     private final Set<Pattern> excludePathPatterns;
@@ -87,6 +91,16 @@ public class ChangeSetFilterImpl impleme
 
     @Override
     public boolean excludes(ChangeSet changeSet) {
+        try{
+            return doExcludes(changeSet);
+        } catch(Exception e) {
+            LOG.warn("excludes: got an Exception while evaluating excludes: " 
+ e.getMessage() + 
+                    ", changeSet=" + changeSet, e);
+            return false; // false is the safer option
+        }
+    }
+    
+    private boolean doExcludes(ChangeSet changeSet) {
         final Set<String> cpp = changeSet.getParentPaths();
         final Set<String> parentPaths = cpp != null ? new HashSet<String>(cpp) 
: new HashSet<String>();
 


Reply via email to