You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2014/09/26 12:22:48 UTC

svn commit: r1627738 - in /jackrabbit/oak/branches/1.0: ./ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/NodeObserver.java oak-doc/

Author: chetanm
Date: Fri Sep 26 10:22:47 2014
New Revision: 1627738

URL: http://svn.apache.org/r1627738
Log:
OAK-2143 - NodeObservor should catch exception in case event processing

Merging 1627731

Modified:
    jackrabbit/oak/branches/1.0/   (props changed)
    jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/NodeObserver.java
    jackrabbit/oak/branches/1.0/oak-doc/   (props changed)

Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1627731

Modified: jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/NodeObserver.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/NodeObserver.java?rev=1627738&r1=1627737&r2=1627738&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/NodeObserver.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/observation/NodeObserver.java Fri Sep 26 10:22:47 2014
@@ -119,40 +119,44 @@ public abstract class NodeObserver imple
     @Override
     public void contentChanged(@Nonnull NodeState root, @Nullable CommitInfo info) {
         if (previousRoot != null) {
-            NamePathMapper namePathMapper = new NamePathMapperImpl(
-                    new GlobalNameMapper(new ImmutableRoot(root)));
-
-            Set<String> oakPropertyNames = Sets.newHashSet();
-            for (String name : propertyNames) {
-                String oakName = namePathMapper.getOakNameOrNull(name);
-                if (oakName == null) {
-                    LOG.warn("Ignoring invalid property name: {}", name);
-                } else {
-                    oakPropertyNames.add(oakName);
+            try {
+                NamePathMapper namePathMapper = new NamePathMapperImpl(
+                        new GlobalNameMapper(new ImmutableRoot(root)));
+
+                Set<String> oakPropertyNames = Sets.newHashSet();
+                for (String name : propertyNames) {
+                    String oakName = namePathMapper.getOakNameOrNull(name);
+                    if (oakName == null) {
+                        LOG.warn("Ignoring invalid property name: {}", name);
+                    } else {
+                        oakPropertyNames.add(oakName);
+                    }
                 }
-            }
 
-            NodeState before = previousRoot;
-            NodeState after = root;
-            EventHandler handler = new FilteredHandler(
-                    new VisibleFilter(),
-                    new NodeEventHandler("/", info, namePathMapper, oakPropertyNames));
-
-            String oakPath = namePathMapper.getOakPath(path);
-            if (oakPath == null) {
-                LOG.warn("Cannot listen for changes on invalid path: {}", path);
-                return;
-            }
+                NodeState before = previousRoot;
+                NodeState after = root;
+                EventHandler handler = new FilteredHandler(
+                        new VisibleFilter(),
+                        new NodeEventHandler("/", info, namePathMapper, oakPropertyNames));
+
+                String oakPath = namePathMapper.getOakPath(path);
+                if (oakPath == null) {
+                    LOG.warn("Cannot listen for changes on invalid path: {}", path);
+                    return;
+                }
 
-            for (String oakName : PathUtils.elements(oakPath)) {
-                before = before.getChildNode(oakName);
-                after = after.getChildNode(oakName);
-                handler = handler.getChildHandler(oakName, before, after);
-            }
+                for (String oakName : PathUtils.elements(oakPath)) {
+                    before = before.getChildNode(oakName);
+                    after = after.getChildNode(oakName);
+                    handler = handler.getChildHandler(oakName, before, after);
+                }
 
-            EventGenerator generator = new EventGenerator(before, after, handler);
-            while (!generator.isDone()) {
-                generator.generate();
+                EventGenerator generator = new EventGenerator(before, after, handler);
+                while (!generator.isDone()) {
+                    generator.generate();
+                }
+            } catch (Exception e) {
+                LOG.warn("Error while dispatching observation events", e);
             }
         }
 

Propchange: jackrabbit/oak/branches/1.0/oak-doc/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk/oak-doc:r1627731