Author: mduerig
Date: Tue Nov 26 13:36:30 2013
New Revision: 1545652

URL: http://svn.apache.org/r1545652
Log:
OAK-1133: Observation listener PLUS
Avoid duplicate path conversion

Modified:
    
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeProcessor.java
    
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java

Modified: 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeProcessor.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeProcessor.java?rev=1545652&r1=1545651&r2=1545652&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeProcessor.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/ChangeProcessor.java
 Tue Nov 26 13:36:30 2013
@@ -133,12 +133,11 @@ public class ChangeProcessor implements 
                 FilterProvider provider = filterProvider.get();
                 // FIXME don't rely on toString for session id
                 if (provider.includeCommit(contentSession.toString(), info)) {
-                    String path = 
namePathMapper.getOakPath(provider.getPath());
-                    ImmutableTree beforeTree = getTree(previousRoot, path);
-                    ImmutableTree afterTree = getTree(root, path);
+                    ImmutableTree beforeTree = getTree(previousRoot, 
provider.getPath());
+                    ImmutableTree afterTree = getTree(root, 
provider.getPath());
                     TreePermission treePermission = 
getTreePermission(afterTree);
                     EventIterator<Event> events = new EventIterator<Event>(
-                            beforeTree.getNodeState(), 
afterTree.getNodeState(), path,
+                            beforeTree.getNodeState(), 
afterTree.getNodeState(), provider.getPath(),
                             provider.getFilter(beforeTree, afterTree, 
treePermission),
                             new JcrListener(beforeTree, afterTree, 
namePathMapper, info));
                     if (events.hasNext()) {

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java?rev=1545652&r1=1545651&r2=1545652&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
 Tue Nov 26 13:36:30 2013
@@ -111,7 +111,8 @@ public class ObservationManagerImpl impl
     public synchronized void addEventListener(EventListener listener, int 
eventTypes, String absPath,
             boolean isDeep, String[] uuid, String[] nodeTypeName, boolean 
noLocal) throws RepositoryException {
         boolean includeExternal = !(listener instanceof ExcludeExternal);
-        FilterProvider filterProvider = new JcrFilterProvider(ntMgr, 
eventTypes, oakPath(absPath), isDeep,
+        String oakPath = namePathMapper.getOakPath(absPath);
+        FilterProvider filterProvider = new JcrFilterProvider(ntMgr, 
eventTypes, oakPath, isDeep,
                 uuid, validateNodeTypeNames(nodeTypeName), !noLocal, 
includeExternal);
         ChangeProcessor processor = processors.get(listener);
         if (processor == null) {
@@ -172,10 +173,6 @@ public class ObservationManagerImpl impl
 
     //------------------------------------------------------------< private 
>---
 
-    private String oakPath(String jcrPath) {
-        return namePathMapper.getOakPath(jcrPath);
-    }
-
     /**
      * Validates the given node type names.
      *


Reply via email to