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>();