You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2017/03/02 10:33:11 UTC

svn commit: r1785099 - in /sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation: BasicObservationReporter.java ResourceChangeListImpl.java

Author: cziegeler
Date: Thu Mar  2 10:33:11 2017
New Revision: 1785099

URL: http://svn.apache.org/viewvc?rev=1785099&view=rev
Log:
SLING-6590 : Change events for resource providers are not send to listeners

Modified:
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java
    sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/ResourceChangeListImpl.java

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java?rev=1785099&r1=1785098&r2=1785099&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/BasicObservationReporter.java Thu Mar  2 10:33:11 2017
@@ -96,7 +96,7 @@ public class BasicObservationReporter im
                 // find the set of paths that match the provider
                 final Set<Path> paths = new HashSet<>();
                 for(final Path p : info.getPaths()) {
-                    // add when there is an intersection between provider path and resource change listener path 
+                    // add when there is an intersection between provider path and resource change listener path
                     boolean add = providerPath.matches(p.getPath()) || (!p.isPattern() && p.matches(providerPath.getPath()));
                     if ( add ) {
                         if ( p.isPattern() ) {
@@ -232,7 +232,8 @@ public class BasicObservationReporter im
         if ( !infoA.isExternal() && infoB.isExternal() ) {
             return false;
         }
-        return infoA.getResourceChangeTypes().equals(infoB.getResourceChangeTypes());
+        return infoA.getResourceChangeTypes().equals(infoB.getResourceChangeTypes())
+            && infoA.getProviderChangeTypes().equals(infoB.getProviderChangeTypes());
     }
 
     /**
@@ -298,7 +299,7 @@ public class BasicObservationReporter im
      * @return {@code true} whether it matches
      */
     private boolean matches(final ResourceChange change, final ResourceChangeListenerInfo config) {
-        if (!config.getResourceChangeTypes().contains(change.getType())) {
+        if (!config.getResourceChangeTypes().contains(change.getType()) && !config.getProviderChangeTypes().contains(change.getType())) {
             return false;
         }
         if (!config.isExternal() && change.isExternal()) {

Modified: sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/ResourceChangeListImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/ResourceChangeListImpl.java?rev=1785099&r1=1785098&r2=1785099&view=diff
==============================================================================
--- sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/ResourceChangeListImpl.java (original)
+++ sling/trunk/bundles/resourceresolver/src/main/java/org/apache/sling/resourceresolver/impl/observation/ResourceChangeListImpl.java Thu Mar  2 10:33:11 2017
@@ -166,6 +166,11 @@ public class ResourceChangeListImpl impl
         return this.searchPath.clone();
     }
 
+    @Override
+    public String toString() {
+        return list.toString();
+    }
+
     private static final class UnmodifiableListIterator implements ListIterator<ResourceChange> {
 
         private final ListIterator<ResourceChange> iterator;