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/05/23 16:50:54 UTC
svn commit: r1485745 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/core/
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/
oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/ oak-jcr/
oak-jcr/src/te...
Author: mduerig
Date: Thu May 23 14:50:54 2013
New Revision: 1485745
URL: http://svn.apache.org/r1485745
Log:
OAK-813: Removing a Node if the parent is not accessible
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeBuilder.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/ReadOnlyBuilder.java
jackrabbit/oak/trunk/oak-jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/WriteTest.java
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=1485745&r1=1485744&r2=1485745&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 Thu May 23 14:50:54 2013
@@ -239,10 +239,9 @@ public class TreeImpl implements Tree {
public boolean remove() {
checkExists();
if (parent != null && parent.hasChild(name)) {
- NodeBuilder parentBuilder = parent.nodeBuilder;
- parentBuilder.removeChildNode(name);
+ nodeBuilder.remove();
if (parent.hasOrderableChildren()) {
- parentBuilder.setProperty(
+ parent.nodeBuilder.setProperty(
MemoryPropertyBuilder.copy(STRING, parent.nodeBuilder.getProperty(OAK_CHILD_ORDER))
.removeValue(name)
.getPropertyState()
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java?rev=1485745&r1=1485744&r2=1485745&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryNodeBuilder.java Thu May 23 14:50:54 2013
@@ -298,6 +298,14 @@ public class MemoryNodeBuilder implement
}
@Override
+ public void remove() {
+ write();
+ if (parent.head.removeChildNode(name)) {
+ updated();
+ }
+ }
+
+ @Override
public long getPropertyCount() {
return read().getPropertyCount();
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeBuilder.java?rev=1485745&r1=1485744&r2=1485745&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/NodeBuilder.java Thu May 23 14:50:54 2013
@@ -213,11 +213,18 @@ public interface NodeBuilder {
*
* @param name name of the child node
* @return this builder
+ * @deprecated Use {@link #remove()}
*/
@Nonnull
+ @Deprecated
NodeBuilder removeChildNode(String name);
/**
+ * Remove this child node from its parent.
+ */
+ void remove();
+
+ /**
* Returns the current number of properties.
*
* @return number of properties
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/ReadOnlyBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/ReadOnlyBuilder.java?rev=1485745&r1=1485744&r2=1485745&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/ReadOnlyBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/state/ReadOnlyBuilder.java Thu May 23 14:50:54 2013
@@ -94,6 +94,11 @@ public class ReadOnlyBuilder implements
}
@Override
+ public void remove() {
+ throw unsupported();
+ }
+
+ @Override
public long getPropertyCount() {
return state.getPropertyCount();
}
Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1485745&r1=1485744&r2=1485745&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Thu May 23 14:50:54 2013
@@ -291,8 +291,6 @@
org.apache.jackrabbit.test.api.lock.LockTest#testCheckedInUnlock
org.apache.jackrabbit.test.api.observation.GetUserDataTest#testVersioning
- org.apache.jackrabbit.oak.jcr.security.authorization.WriteTest#testRemoveIfReadingParentIsDenied <!-- OAK-813 -->
-
org.apache.jackrabbit.oak.jcr.security.authorization.AccessControlManagementTest#testRemoveMixin <!-- OAK-767 -->
org.apache.jackrabbit.oak.jcr.security.authorization.NodeTypeManagementTest#testRemoveMixin <!-- OAK-767 -->
org.apache.jackrabbit.oak.jcr.security.authorization.NodeTypeManagementTest#testRemoveMixinWithoutPermission <!-- OAK-767 -->
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/WriteTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/WriteTest.java?rev=1485745&r1=1485744&r2=1485745&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/WriteTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/WriteTest.java Thu May 23 14:50:54 2013
@@ -31,7 +31,6 @@ import org.apache.jackrabbit.commons.jac
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
import org.apache.jackrabbit.test.NotExecutableException;
import org.apache.jackrabbit.util.Text;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -616,7 +615,6 @@ public class WriteTest extends AbstractE
n.save();
}
- @Ignore("OAK-813: Removal needs read access on the parent") // FIXME
@Test
public void testRemoveIfReadingParentIsDenied() throws Exception {
/* deny READ privilege for testUser at 'path' */