You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/07/29 13:35:17 UTC
svn commit: r1152173 -
/jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java
Author: mduerig
Date: Fri Jul 29 11:35:17 2011
New Revision: 1152173
URL: http://svn.apache.org/viewvc?rev=1152173&view=rev
Log:
spi2microkernel (WIP)
- avoid IndexOutOfBoundException in observation
- logging
Modified:
jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java
Modified: jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java?rev=1152173&r1=1152172&r2=1152173&view=diff
==============================================================================
--- jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java (original)
+++ jackrabbit/sandbox/spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/SubscriptionImpl.java Fri Jul 29 11:35:17 2011
@@ -41,6 +41,8 @@ import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.jcr.RepositoryException;
import java.util.ArrayList;
@@ -56,6 +58,8 @@ import java.util.concurrent.ExecutionExc
import java.util.concurrent.FutureTask;
public class SubscriptionImpl implements Subscription {
+ static final Logger log = LoggerFactory.getLogger(SubscriptionImpl.class);
+
private final MicroKernel microKernel;
private final SessionState sessionState;
private final WaitForCommit waitForCommit;
@@ -140,7 +144,7 @@ public class SubscriptionImpl implements
return path.getAncestor(1);
}
catch (RepositoryException e) {
- // todo log
+ log.error("Error getting parent of " + path, e);
return null;
}
}
@@ -150,14 +154,18 @@ public class SubscriptionImpl implements
return PathFactoryImpl.getInstance().create(parent, name, true);
}
catch (RepositoryException e) {
- // todo log
+ log.error("Error creating path for " + parent + ", " + name, e);
return null;
}
}
private static Path readPath(JsopTokenizer jsopTokenizer) {
String path = jsopTokenizer.readString();
- path = path.substring(PathUtils.getNextSlash(path, 1)); // slash off workspace name
+ int index = PathUtils.getNextSlash(path, 1); // slash off workspace name
+ path = index == -1
+ ? "/"
+ : path.substring(index);
+
return Paths.stringToPath(path);
}
@@ -324,7 +332,10 @@ public class SubscriptionImpl implements
private void addItem(JsopTokenizer jsopTokenizer, EventTemplate eventTemplate, Collection<Event> events) {
Path path = readPath(jsopTokenizer);
- NodeId parentId = createNodeId(getParent(path));
+ NodeId parentId = path.denotesRoot()
+ ? null
+ : createNodeId(getParent(path));
+
addItem(jsopTokenizer, eventTemplate, events, path, parentId);
}
@@ -379,7 +390,9 @@ public class SubscriptionImpl implements
private void removeNode(JsopTokenizer jsopTokenizer, EventTemplate eventTemplate, Collection<Event> events) {
Path path = readPath(jsopTokenizer);
- NodeId parentId = createNodeId(getParent(path));
+ NodeId parentId = path.denotesRoot()
+ ? null
+ : createNodeId(getParent(path));
EventTemplate removeNodeEvent = eventTemplate.copy();
removeNodeEvent.setType(Event.NODE_REMOVED);