You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by md...@apache.org on 2014/04/02 12:06:35 UTC

svn commit: r1583952 - /sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/OakResourceListener.java

Author: mduerig
Date: Wed Apr  2 10:06:35 2014
New Revision: 1583952

URL: http://svn.apache.org/r1583952
Log:
SLING-3487: Resource added events missing when using new OakResourceListener
Credits to Marc Pfaff for the patch. Applied with slight modifications

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

Modified: sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/OakResourceListener.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/OakResourceListener.java?rev=1583952&r1=1583951&r2=1583952&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/OakResourceListener.java (original)
+++ sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/OakResourceListener.java Wed Apr  2 10:06:35 2014
@@ -181,10 +181,15 @@ public class OakResourceListener extends
                         final ResourceResolver resolver = this.support.getResourceResolver();
                         if ( resolver == null ) {
                             sendEvent = false;
+                            logger.debug("resource resolver is null");
                         } else {
-                            final Resource rsrc = resolver.getResource((String)changes.get(PROPERTY_PATH));
+                            resolver.refresh();
+                            String changesPath = (String)changes.get(PROPERTY_PATH);
+                            final Resource rsrc = resolver.getResource(changesPath);
                             if ( rsrc == null ) {
+                                resolver.refresh();
                                 sendEvent = false;
+                                logger.debug("not able to get resource for changes path {}", changesPath);
                             } else {
                                 // check if this is a JCR backed resource, otherwise it is not visible!
                                 final Node node = rsrc.adaptTo(Node.class);
@@ -201,11 +206,13 @@ public class OakResourceListener extends
                                         }
                                     } catch (RepositoryException re) {
                                         // ignore this
+                                        logger.error(re.getMessage(), re);
                                     }
 
                                 } else {
                                     // this is not a jcr backed resource
                                     sendEvent = false;
+                                    logger.debug("not able to adapt resource {} to node", rsrc.getPath());
                                 }
 
                             }
@@ -213,7 +220,7 @@ public class OakResourceListener extends
                         if ( !sendEvent ) {
                             // take a quite silent note of not being able to
                             // resolve the resource
-                            logger.debug(
+                            logger.warn(
                                 "processOsgiEventQueue: Resource at {} not found, which is not expected for an added or modified node",
                                     path);
                         }