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 md...@apache.org on 2012/07/11 16:19:02 UTC
svn commit: r1360185 - in /jackrabbit/oak/trunk/oak-jcr: ./
src/main/java/org/apache/jackrabbit/oak/jcr/
src/main/java/org/apache/jackrabbit/oak/jcr/observation/
Author: mduerig
Date: Wed Jul 11 14:19:02 2012
New Revision: 1360185
URL: http://svn.apache.org/viewvc?rev=1360185&view=rev
Log:
Revert: OAK-156: Observation events need Session.refresh
Modified:
jackrabbit/oak/trunk/oak-jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java
Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1360185&r1=1360184&r2=1360185&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Wed Jul 11 14:19:02 2012
@@ -95,6 +95,7 @@ org.apache.jackrabbit.test.api.observati
org.apache.jackrabbit.test.api.observation.NodeReorderTest#testNodeReorderSameNameWithRemove <!-- reorder not supported -->
org.apache.jackrabbit.test.api.observation.AddEventListenerTest#testNodeType
org.apache.jackrabbit.test.api.observation.AddEventListenerTest#testNoLocalTrue
+org.apache.jackrabbit.test.api.observation.WorkspaceOperationTest#testCopy <!-- OAK-156 -->
org.apache.jackrabbit.test.api.observation.GetIdentifierTest#testNodeAdded
org.apache.jackrabbit.test.api.observation.GetIdentifierTest#testNodeMoved
org.apache.jackrabbit.test.api.observation.GetIdentifierTest#testNodeRemoved
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java?rev=1360185&r1=1360184&r2=1360185&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyDelegate.java Wed Jul 11 14:19:02 2012
@@ -252,7 +252,7 @@ public class PropertyDelegate extends It
//------------------------------------------------------------< private >---
@Nonnull
- private synchronized PropertyState getPropertyState() throws InvalidItemStateException {
+ private PropertyState getPropertyState() throws InvalidItemStateException {
resolve();
if (parent == null) {
throw new InvalidItemStateException("Property is stale");
@@ -262,7 +262,7 @@ public class PropertyDelegate extends It
}
@Nonnull
- private synchronized Tree getParentTree() throws InvalidItemStateException {
+ private Tree getParentTree() throws InvalidItemStateException {
resolve();
if (parent == null) {
throw new InvalidItemStateException("Property is stale");
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java?rev=1360185&r1=1360184&r2=1360185&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java Wed Jul 11 14:19:02 2012
@@ -185,16 +185,12 @@ public class SessionDelegate {
}
public boolean hasPendingChanges() {
- synchronized (root) {
- return root.hasPendingChanges();
- }
+ return root.hasPendingChanges();
}
public void save() throws RepositoryException {
try {
- synchronized (root) {
- root.commit(conflictHandler);
- }
+ root.commit(conflictHandler);
}
catch (CommitFailedException e) {
e.throwRepositoryException();
@@ -202,13 +198,11 @@ public class SessionDelegate {
}
public void refresh(boolean keepChanges) {
- synchronized (root) {
- if (keepChanges) {
- root.rebase(conflictHandler);
- }
- else {
- root.refresh();
- }
+ if (keepChanges) {
+ root.rebase(conflictHandler);
+ }
+ else {
+ root.refresh();
}
}
@@ -279,9 +273,7 @@ public class SessionDelegate {
@Nonnull
public ChangeExtractor getChangeExtractor() {
- synchronized (root) {
- return root.getChangeExtractor();
- }
+ return root.getChangeExtractor();
}
//----------------------------------------------------------< Workspace >---
@@ -332,40 +324,38 @@ public class SessionDelegate {
public void move(String srcAbsPath, String destAbsPath, boolean transientOp)
throws RepositoryException {
- synchronized (root) {
- String srcPath = PathUtils.relativize("/", srcAbsPath);
- String destPath = PathUtils.relativize("/", destAbsPath);
- Root moveRoot = transientOp ? root : contentSession.getCurrentRoot();
-
- // check destination
- Tree dest = moveRoot.getTree(destPath);
- if (dest != null) {
- throw new ItemExistsException(destAbsPath);
- }
+ String srcPath = PathUtils.relativize("/", srcAbsPath);
+ String destPath = PathUtils.relativize("/", destAbsPath);
+ Root moveRoot = transientOp ? root : contentSession.getCurrentRoot();
- // check parent of destination
- String destParentPath = PathUtils.getParentPath(destPath);
- Tree destParent = moveRoot.getTree(destParentPath);
- if (destParent == null) {
- throw new PathNotFoundException(PathUtils.getParentPath(destAbsPath));
- }
+ // check destination
+ Tree dest = moveRoot.getTree(destPath);
+ if (dest != null) {
+ throw new ItemExistsException(destAbsPath);
+ }
- // check source exists
- Tree src = moveRoot.getTree(srcPath);
- if (src == null) {
- throw new PathNotFoundException(srcAbsPath);
- }
+ // check parent of destination
+ String destParentPath = PathUtils.getParentPath(destPath);
+ Tree destParent = moveRoot.getTree(destParentPath);
+ if (destParent == null) {
+ throw new PathNotFoundException(PathUtils.getParentPath(destAbsPath));
+ }
- try {
- moveRoot.move(srcPath, destPath);
- if (!transientOp) {
- moveRoot.commit(DefaultConflictHandler.OURS);
- }
- }
- catch (CommitFailedException e) {
- e.throwRepositoryException();
+ // check source exists
+ Tree src = moveRoot.getTree(srcPath);
+ if (src == null) {
+ throw new PathNotFoundException(srcAbsPath);
+ }
+
+ try {
+ moveRoot.move(srcPath, destPath);
+ if (!transientOp) {
+ moveRoot.commit(DefaultConflictHandler.OURS);
}
}
+ catch (CommitFailedException e) {
+ e.throwRepositoryException();
+ }
}
@Nonnull
@@ -410,9 +400,7 @@ public class SessionDelegate {
@CheckForNull
Tree getTree(String path) {
- synchronized (root) {
- return root.getTree(path);
- }
+ return root.getTree(path);
}
@CheckForNull
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java?rev=1360185&r1=1360184&r2=1360185&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java Wed Jul 11 14:19:02 2012
@@ -29,7 +29,6 @@ import org.apache.jackrabbit.commons.ite
import org.apache.jackrabbit.oak.api.ChangeExtractor;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.commons.PathUtils;
-import org.apache.jackrabbit.oak.jcr.SessionDelegate;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -41,21 +40,19 @@ import static org.apache.jackrabbit.comm
import static org.apache.jackrabbit.oak.util.Iterators.singleton;
class ChangeProcessor extends TimerTask {
- private final SessionDelegate sessionDelegate;
+ private final NamePathMapper namePathMapper;
private final ChangeExtractor changeExtractor;
private final EventListener listener;
private final AtomicReference<ChangeFilter> filterRef;
- private final NamePathMapper namePathMapper;
private volatile boolean stopped;
- public ChangeProcessor(SessionDelegate sessionDelegate, ChangeExtractor changeExtractor, EventListener listener,
+ public ChangeProcessor(NamePathMapper namePathMapper, ChangeExtractor changeExtractor, EventListener listener,
ChangeFilter filter) {
- this.sessionDelegate = sessionDelegate;
+ this.namePathMapper = namePathMapper;
this.changeExtractor = changeExtractor;
this.listener = listener;
filterRef = new AtomicReference<ChangeFilter>(filter);
- namePathMapper = sessionDelegate.getNamePathMapper();
}
public void setFilter(ChangeFilter filter) {
@@ -69,7 +66,6 @@ class ChangeProcessor extends TimerTask
@Override
public void run() {
- sessionDelegate.refresh(true);
EventGeneratingNodeStateDiff diff = new EventGeneratingNodeStateDiff();
changeExtractor.getChanges(diff);
diff.sendEvents();
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=1360185&r1=1360184&r2=1360185&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 Wed Jul 11 14:19:02 2012
@@ -59,7 +59,8 @@ public class ObservationManagerImpl impl
if (processor == null) {
ChangeExtractor extractor = sessionDelegate.getChangeExtractor();
ChangeFilter filter = new ChangeFilter(eventTypes, absPath, isDeep, uuid, nodeTypeName, noLocal);
- ChangeProcessor changeProcessor = new ChangeProcessor(sessionDelegate, extractor, listener, filter);
+ ChangeProcessor changeProcessor = new ChangeProcessor(sessionDelegate.getNamePathMapper(), extractor,
+ listener, filter);
processors.put(listener, changeProcessor);
timer.get().schedule(changeProcessor, 0, 1000);
}