Author: fmeschbe
Date: Tue Nov 22 14:14:52 2011
New Revision: 1205007

URL: http://svn.apache.org/viewvc?rev=1205007&view=rev
Log:
SLING-2296 Make sure the event path is changed if the event is for the 
jcr:content child node of an nt:file node. Also log an error message if the 
resource for the changed/added node cannot be retrieved from the resource 
resolver.

Modified:
    
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java

Modified: 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java?rev=1205007&r1=1205006&r2=1205007&view=diff
==============================================================================
--- 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceListener.java
 Tue Nov 22 14:14:52 2011
@@ -271,7 +271,6 @@ public class JcrResourceListener impleme
         path = createWorkspacePath(path);
 
         final Dictionary<String, Object> properties = new Hashtable<String, 
Object>();
-        properties.put(SlingConstants.PROPERTY_PATH, path);
         properties.put(SlingConstants.PROPERTY_USERID, event.getUserID());
         if ( this.isExternal(event) ) {
             properties.put("event.application", "unknown");
@@ -293,6 +292,7 @@ public class JcrResourceListener impleme
                                 final Resource parentResource = 
ResourceUtil.getParent(resource);
                                 if (parentResource != null) {
                                     resource = parentResource;
+                                    path = resource.getPath();
                                 }
                             }
                         } catch (RepositoryException re) {
@@ -309,9 +309,16 @@ public class JcrResourceListener impleme
                 if (resourceSuperType != null) {
                     
properties.put(SlingConstants.PROPERTY_RESOURCE_SUPER_TYPE, 
resource.getResourceSuperType());
                 }
+            } else {
+                logger.error(
+                    "sendOsgiEvent: Resource at {} not found, which is not 
expected for an added or modified node",
+                    path);
             }
         }
 
+        // set the path (might have been changed for nt:file content)
+        properties.put(SlingConstants.PROPERTY_PATH, path);
+
         localEA.postEvent(new org.osgi.service.event.Event(topic, properties));
     }
 


Reply via email to