SLING-4381 allow null map when creating a resource
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1680767 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index ec6cdb2..1ec9f11 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,6 +132,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.testing.logging-mock</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
<version>2.0</version>
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 a1bc13f..1df45cb 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
@@ -148,7 +148,8 @@
}
// create new resource in changeset
- NoSqlData data = new NoSqlData(path, NoSqlValueMap.convertForWriteAll(new HashMap<String, Object>(properties)));
+ Map<String, Object> writableMap = properties != null ? new HashMap<String, Object>(properties) : new HashMap<String, Object>();
+ NoSqlData data = new NoSqlData(path, NoSqlValueMap.convertForWriteAll(writableMap));
changedResources.put(path, data);
return new NoSqlResource(data, resolver, this);
}
diff --git a/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderTest.java b/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderTest.java
index eda8f8c..fde5152 100644
--- a/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderTest.java
+++ b/src/test/java/org/apache/sling/nosql/generic/resource/impl/AbstractNoSqlResourceProviderTest.java
@@ -208,4 +208,10 @@
assertEquals(JcrConstants.NT_UNSTRUCTURED, resource.getResourceType());
}
+ @Test
+ public void testCreateWithNullMap() throws IOException {
+ Resource resource1 = context.resourceResolver().getResource(testRoot().getPath() + "/node1");
+ context.resourceResolver().create(resource1, "nullMap", null);
+ }
+
}