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;


Reply via email to