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 mr...@apache.org on 2013/08/05 14:15:40 UTC
svn commit: r1510444 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionTest.java
Author: mreutegg
Date: Mon Aug 5 12:15:40 2013
New Revision: 1510444
URL: http://svn.apache.org/r1510444
Log:
OAK-930: VersionManager#isCheckedOut throws IllegalStateException
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java?rev=1510444&r1=1510443&r2=1510444&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java Mon Aug 5 12:15:40 2013
@@ -64,7 +64,7 @@ public abstract class ReadOnlyVersionMan
/**
* Returns {@code true} if the tree is checked out; otherwise
- * {@code false}.
+ * {@code false}. The root node is always considered checked out.
*
* @param tree the tree to check.
* @return whether the tree is checked out or not.
@@ -74,8 +74,6 @@ public abstract class ReadOnlyVersionMan
PropertyState p = tree.getProperty(VersionConstants.JCR_ISCHECKEDOUT);
if (p != null) {
return p.getValue(Type.BOOLEAN);
- } else if (tree.isRoot()) {
- return true;
}
} else {
// FIXME: this actually means access to the tree is restricted
@@ -85,8 +83,12 @@ public abstract class ReadOnlyVersionMan
// but it may mean oak-jcr sees a node as checked out even though
// it is in fact read-only because of a checked-in ancestor.
}
- // otherwise return checkedOut status of parent
- return isCheckedOut(tree.getParent());
+ if (tree.isRoot()) {
+ return true;
+ } else {
+ // otherwise return checkedOut status of parent
+ return isCheckedOut(tree.getParent());
+ }
}
/**
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionTest.java?rev=1510444&r1=1510443&r2=1510444&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionTest.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/VersionTest.java Mon Aug 5 12:15:40 2013
@@ -31,7 +31,6 @@ import org.apache.jackrabbit.oak.jcr.Jcr
import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertFalse;
@@ -40,7 +39,7 @@ import static org.junit.Assert.assertTru
public class VersionTest {
private Repository repository;
- private List<Session> sessions = new ArrayList();
+ private List<Session> sessions = new ArrayList<Session>();
@Before
public void before() throws Exception {
@@ -49,7 +48,8 @@ public class VersionTest {
Session admin = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
sessions.add(admin);
Node testNode = admin.getRootNode().addNode("testNode");
- AccessControlUtils.addAccessControlEntry(admin, "/testNode", EveryonePrincipal.getInstance(), new String[]{Privilege.JCR_READ}, true);
+ AccessControlUtils.addAccessControlEntry(admin, testNode.getPath(),
+ EveryonePrincipal.getInstance(), new String[]{Privilege.JCR_READ}, true);
admin.save();
}
@@ -59,9 +59,9 @@ public class VersionTest {
s.logout();
}
repository = null;
+ sessions = null;
}
- @Ignore("OAK-930") // FIXME
@Test
public void testNodeIsCheckedOut() throws RepositoryException {
Session s = repository.login(new GuestCredentials());