diff --git a/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/util/HttpMultipartPost.java b/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/util/HttpMultipartPost.java index ac9c44b2930..9d71f38baab 100644 --- a/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/util/HttpMultipartPost.java +++ b/jackrabbit-jcr-server/src/main/java/org/apache/jackrabbit/server/util/HttpMultipartPost.java @@ -69,6 +69,9 @@ private void extractMultipart(HttpServletRequest request, File tmpDir) ServletFileUpload upload = new ServletFileUpload(getFileItemFactory(tmpDir)); if (PARTHEADERSIZEMAX > 0) { upload.setPartHeaderSizeMax(PARTHEADERSIZEMAX); + } else { + // override the default limit of 512 in commons-fileupload 1.6 + upload.setPartHeaderSizeMax(4096); } // make sure the content disposition headers are read with the charset // specified in the request content type (or UTF-8 if no charset is specified). diff --git a/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/util/RequestDataTest.java b/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/util/RequestDataTest.java index bb86153d1f2..0efe422fc6e 100755 --- a/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/util/RequestDataTest.java +++ b/jackrabbit-jcr-server/src/test/java/org/apache/jackrabbit/server/util/RequestDataTest.java @@ -34,7 +34,6 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.*; - import javax.servlet.ServletInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -212,12 +211,13 @@ public void testMultipartPostWithShorterFilename() throws Exception { @Test(expected=IOException.class) public void testMultipartPostWithExtremelyLongFilename() throws Exception { - buildRequestWithFilenameOfVaryingLength(1000); + // tests against the new default value of 4096 + buildRequestWithFilenameOfVaryingLength(5000); File testTmpDir = tempFolder.newFolder("jackrabbit_long_filename"); RequestData requestData = new RequestData(mockRequest, testTmpDir); try { assertTrue( - requestData.getParameter("fileUpload").length() > 950); + requestData.getParameter("fileUpload").length() > 4900); } finally { requestData.dispose(); } @@ -226,13 +226,13 @@ public void testMultipartPostWithExtremelyLongFilename() throws Exception { @Test public void testMultipartPostWithExtremelyLongFilenameNButHigherConfig() throws Exception { try { - System.setProperty("jackrabbit-server-PartHeaderSizeMax", "2048"); - buildRequestWithFilenameOfVaryingLength(1000); + System.setProperty("jackrabbit-server-PartHeaderSizeMax", "8192"); + buildRequestWithFilenameOfVaryingLength(7500); File testTmpDir = tempFolder.newFolder("jackrabbit_long_filename"); RequestData requestData = new RequestData(mockRequest, testTmpDir); try { assertTrue( - requestData.getParameter("fileUpload").length() > 950); + requestData.getParameter("fileUpload").length() > 7500); } finally { requestData.dispose(); }