SLING-9873-A comma in node name causes Sling Content Distribution to fail
diff --git a/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java b/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
index 690140c..9d32113 100644
--- a/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
+++ b/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
@@ -40,7 +40,7 @@
private final static String PACKAGE_START = "DSTRPCK:";
private final static String DELIM = "|";
- private final static String PATH_DELIM = ",";
+ private final static String PATH_DELIM = ":";
private final long size;
public SimpleDistributionPackage(DistributionRequest request, String type) {
diff --git a/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java b/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java
index 9e419bb..580be45 100644
--- a/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java
+++ b/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java
@@ -27,7 +27,6 @@
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.DistributionRequestType;
import org.apache.sling.distribution.SimpleDistributionRequest;
-import org.apache.sling.distribution.packaging.impl.SimpleDistributionPackage;
import org.junit.Test;
import org.mockito.Mockito;
@@ -45,7 +44,8 @@
*/
public class SimpleDistributionPackageTest {
- private static final String DSTRPCK_DELETE = "DSTRPCK:DELETE|/abc,/c";
+ private static final String DSTRPCK_DELETE = "DSTRPCK:DELETE|/abc:/c";
+ private static final String DSTRPCK_ITEM_WITH_COMMA_DELETE = "DSTRPCK:DELETE|/ab,c:/c";
@Test
public void testInvalid() {
@@ -75,6 +75,22 @@
SimpleDistributionPackage pkg = SimpleDistributionPackage.fromStream(stream, "ADD");
assertThat(pkg, nullValue());
}
+
+ @Test
+ public void testCreatedAndReadPackagesEqualityWithCommaInName() throws Exception {
+ DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.DELETE, "/ab,c", "/c");
+ SimpleDistributionPackage createdPackage = new SimpleDistributionPackage(request, "VOID");
+ assertThat(createdPackage.toString(), equalTo(DSTRPCK_ITEM_WITH_COMMA_DELETE));
+ // Just to run the code
+ createdPackage.acquire();
+ createdPackage.release();
+ createdPackage.close();
+ createdPackage.delete();
+
+ SimpleDistributionPackage readPackage = SimpleDistributionPackage.fromStream(new ByteArrayInputStream(DSTRPCK_ITEM_WITH_COMMA_DELETE.getBytes()), "VOID");
+ assertNotNull(readPackage);
+ assertEquals(Arrays.toString(createdPackage.getInfo().getPaths()), Arrays.toString(readPackage.getInfo().getPaths()));
+ }
@Test
public void testCreatedAndReadPackagesEquality() throws Exception {