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 2013/03/08 11:09:50 UTC
svn commit: r1454308 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/core/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/
Author: mduerig
Date: Fri Mar 8 10:09:50 2013
New Revision: 1454308
URL: http://svn.apache.org/r1454308
Log:
OAK-664: Track Tree instance across moves
avoid changing object state in toString()
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractNodeLocation.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractPropertyLocation.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/NullLocation.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractNodeLocation.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractNodeLocation.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractNodeLocation.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractNodeLocation.java Fri Mar 8 10:09:50 2013
@@ -22,6 +22,7 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
+import static com.google.common.base.Objects.toStringHelper;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
@@ -112,4 +113,9 @@ abstract class AbstractNodeLocation<T ex
public boolean set(PropertyState property) {
return false;
}
+
+ @Override
+ public String toString() {
+ return toStringHelper(this).add("tree", tree).toString();
+ }
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractPropertyLocation.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractPropertyLocation.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractPropertyLocation.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractPropertyLocation.java Fri Mar 8 10:09:50 2013
@@ -22,6 +22,7 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
+import static com.google.common.base.Objects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
/**
@@ -80,4 +81,12 @@ abstract class AbstractPropertyLocation<
parentLocation.tree.setProperty(property);
return true;
}
+
+ @Override
+ public String toString() {
+ return toStringHelper(this)
+ .add("parent", parentLocation)
+ .add("name", name)
+ .toString();
+ }
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/NullLocation.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/NullLocation.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/NullLocation.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/NullLocation.java Fri Mar 8 10:09:50 2013
@@ -23,6 +23,8 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
+import static com.google.common.base.Objects.toStringHelper;
+
/**
* This {@code TreeLocation} refers to an invalid location in a tree. That is
* to a location where no item resides.
@@ -84,4 +86,9 @@ final class NullLocation extends Abstrac
public boolean set(PropertyState property) {
return false;
}
+
+ @Override
+ public String toString() {
+ return toStringHelper(this).add("path", getPath()).toString();
+ }
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java Fri Mar 8 10:09:50 2013
@@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
import org.apache.jackrabbit.oak.spi.state.NodeState;
+import static com.google.common.base.Objects.toStringHelper;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.jackrabbit.oak.api.Type.STRING;
@@ -246,6 +247,11 @@ public class ReadOnlyTree implements Tre
throw new UnsupportedOperationException();
}
+ @Override
+ public String toString() {
+ return toStringHelper(this).add("path", getPath()).toString();
+ }
+
//------------------------------------------------------------< internal >---
@Nonnull
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java Fri Mar 8 10:09:50 2013
@@ -88,7 +88,7 @@ public class RootImpl implements Root {
private NodeStoreBranch branch;
/** Sentinel for the next move operation to take place on the this root */
- private Move lastMove;
+ private Move lastMove = new Move();
/**
* Current root {@code Tree}
@@ -231,7 +231,6 @@ public class RootImpl implements Root {
if (!store.getRoot().equals(rootTree.getBaseState())) {
purgePendingChanges();
branch.rebase();
- lastMove = new Move();
rootTree = new TreeImpl(this, lastMove);
permissionProvider = null;
}
@@ -241,7 +240,6 @@ public class RootImpl implements Root {
public final void refresh() {
checkLive();
branch = store.branch();
- lastMove = new Move();
rootTree = new TreeImpl(this, lastMove);
modCount = 0;
if (permissionProvider != null) {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java Fri Mar 8 10:09:50 2013
@@ -44,6 +44,7 @@ import org.apache.jackrabbit.oak.spi.sta
import org.apache.jackrabbit.oak.spi.state.NodeStateUtils;
import org.apache.jackrabbit.oak.spi.state.PropertyBuilder;
+import static com.google.common.base.Objects.toStringHelper;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.jackrabbit.oak.api.Type.STRING;
@@ -414,6 +415,11 @@ public class TreeImpl implements Tree {
return new NodeLocation(this);
}
+ @Override
+ public String toString() {
+ return toStringHelper(this).add("path", getPathInternal()).toString();
+ }
+
//-----------------------------------------------------------< internal >---
@Nonnull
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemDelegate.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemDelegate.java Fri Mar 8 10:09:50 2013
@@ -25,6 +25,7 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
+import static com.google.common.base.Objects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
/**
@@ -124,8 +125,7 @@ public abstract class ItemDelegate {
@Override
public String toString() {
- // don't disturb the state: avoid resolving location
- return getClass().getSimpleName() + '[' + location.getPath() + ']';
+ return toStringHelper(this).add("location", location).toString();
}
//------------------------------------------------------------< private >---
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java?rev=1454308&r1=1454307&r2=1454308&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/RepositoryTest.java Fri Mar 8 10:09:50 2013
@@ -1534,12 +1534,13 @@ public class RepositoryTest extends Abst
Session session = getAdminSession();
Node node = getNode(TEST_PATH);
- node.addNode("source").addNode("node");
+ Node source = node.addNode("source").addNode("node");
node.addNode("target");
session.save();
session.refresh(true);
session.move(TEST_PATH + "/source/node", TEST_PATH + "/target/moved");
+ assertEquals(TEST_PATH + "/target/moved", source.getPath());
assertFalse(node.hasNode("source/node"));
assertTrue(node.hasNode("source"));