This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-nosql-generic.git
commit e20451a537e5003da0a8bf9bd363f72b1c3d47b2 Author: Stefan Seifert <[email protected]> AuthorDate: Thu May 21 07:02:40 2015 +0000 SLING-4381 disallow storing data in root resource git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1680744 13f79535-47bb-0310-9956-ffa450edef68 --- .../generic/resource/impl/NoSqlResourceProvider.java | 3 +++ .../impl/AbstractNoSqlResourceProviderRootTest.java | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResourceProvider.java b/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResourceProvider.java index 5621566..a1bc13f 100644 --- a/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResourceProvider.java +++ b/src/main/java/org/apache/sling/nosql/generic/resource/impl/NoSqlResourceProvider.java @@ -194,6 +194,9 @@ public class NoSqlResourceProvider implements ResourceProvider, ModifyingResourc notifyRemoved(path); } for (NoSqlData item : changedResources.values()) { + if (ROOT_PATH.equals(item.getPath())) { + throw new PersistenceException("Unable to store resource at {}" + item.getPath(), null, item.getPath(), null); + } boolean created = adapter.store(item); if (created) { notifyAdded(item.getPath()); diff --git a/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderRootTest.java b/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderRootTest.java index b346aa6..3b4966f 100644 --- a/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderRootTest.java +++ b/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderRootTest.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.apache.jackrabbit.JcrConstants; +import org.apache.sling.api.resource.ModifiableValueMap; import org.apache.sling.api.resource.PersistenceException; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceUtil; @@ -75,5 +76,19 @@ public abstract class AbstractNoSqlResourceProviderRootTest { context.resourceResolver().delete(test); } + + @Test(expected = PersistenceException.class) + public void testDeleteRootPath() throws PersistenceException { + Resource root = context.resourceResolver().getResource("/"); + context.resourceResolver().delete(root); + } + + @Test(expected = Throwable.class) + public void testUpdateRootPath() throws PersistenceException { + Resource root = context.resourceResolver().getResource("/"); + ModifiableValueMap props = root.adaptTo(ModifiableValueMap.class); + props.put("prop1", "value1"); + context.resourceResolver().commit(); + } } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
