You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by re...@apache.org on 2018/06/19 13:04:18 UTC
svn commit: r1833835 - in /jackrabbit/trunk:
jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AddNodeTest.java
jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java
Author: reschke
Date: Tue Jun 19 13:04:18 2018
New Revision: 1833835
URL: http://svn.apache.org/viewvc?rev=1833835&view=rev
Log:
JCR-4317: davex remoting fails for non-ASCII characters in node names
Modified:
jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AddNodeTest.java
jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java
Modified: jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AddNodeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AddNodeTest.java?rev=1833835&r1=1833834&r2=1833835&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AddNodeTest.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AddNodeTest.java Tue Jun 19 13:04:18 2018
@@ -16,26 +16,20 @@
*/
package org.apache.jackrabbit.jcr2spi;
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.ByteArrayInputStream;
import javax.jcr.Node;
-import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.lock.LockException;
+import org.apache.jackrabbit.test.AbstractJCRTest;
+
/**
* <code>AddNodeTest</code>...
*/
public class AddNodeTest extends AbstractJCRTest {
/**
- * logger instance
- */
- private static final Logger log = LoggerFactory.getLogger(AddNodeTest.class);
-
- /**
* Writing to a locked node must throw LockException even if the lock
* isn't detected withing Jcr2Spi.
*
@@ -48,7 +42,7 @@ public class AddNodeTest extends Abstrac
Node node = s.getNode(testRootNode.getPath());
Node n = node.addNode(nodeName1);
n.setProperty(propertyName1, "value");
-
+
testRootNode.lock(true, true);
s.save();
@@ -58,4 +52,26 @@ public class AddNodeTest extends Abstrac
s.logout();
}
}
+
+ public void testAddNodeNonASCII() throws Exception {
+ String testName = "test - \u20ac";
+ Session s = getHelper().getSuperuserSession();
+ try {
+ Node node = s.getNode(testRootNode.getPath());
+ Node n = node.addNode(testName, "nt:file");
+ Node c = n.addNode("jcr:content", "nt:resource");
+ c.setProperty("jcr:data", s.getValueFactory().createBinary(new ByteArrayInputStream("hello world".getBytes("UTF-8"))));
+ s.save();
+ } finally {
+ s.logout();
+ }
+
+ Session s2 = getHelper().getReadOnlySession();
+ try {
+ Node node = s2.getNode(testRootNode.getPath()).getNode(testName);
+ assertEquals(testName, node.getName());
+ } finally {
+ s2.logout();
+ }
+ }
}
\ No newline at end of file
Modified: jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java?rev=1833835&r1=1833834&r2=1833835&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-spi2dav/src/main/java/org/apache/jackrabbit/spi2davex/RepositoryServiceImpl.java Tue Jun 19 13:04:18 2018
@@ -40,6 +40,7 @@ import org.apache.http.client.methods.Ht
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.FormBodyPart;
+import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.jackrabbit.JcrConstants;
@@ -615,7 +616,8 @@ public class RepositoryServiceImpl exten
// engine has a form-size restriction (JCR-3726)
Utils.addPart(PARAM_DIFF, buf.toString(), parts);
- MultipartEntityBuilder b = MultipartEntityBuilder.create();
+ // JCR-4317: need RFC6532 mode so that values are encoded in UTF-8
+ MultipartEntityBuilder b = MultipartEntityBuilder.create().setMode(HttpMultipartMode.RFC6532);
for (FormBodyPart p : parts) {
b.addPart(p.getName(), p.getBody());
}