You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2014/06/29 21:32:33 UTC

svn commit: r1606578 - in /chemistry/opencmis/trunk: chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/...

Author: fmui
Date: Sun Jun 29 19:32:32 2014
New Revision: 1606578

URL: http://svn.apache.org/r1606578
Log:
more code clean up and minor improvements

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AtomEntryWriter.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/cookies/CmisCookieStoreImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/Response.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Base64.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/MimeHelper.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/XMLConverter.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultipartParser.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/MultipartParserTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareTypeManager.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateDocumentDialog.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AtomEntryWriter.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AtomEntryWriter.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AtomEntryWriter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AtomEntryWriter.java Sun Jun 29 19:32:32 2014
@@ -56,7 +56,7 @@ import org.apache.chemistry.opencmis.com
  */
 public class AtomEntryWriter {
 
-    private static final int BUFFER_SIZE = 8 * 1024;
+    private static final int BUFFER_SIZE = 64 * 1024;
 
     private final CmisVersion cmisVersion;
     private final ObjectData object;

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java Sun Jun 29 19:32:32 2014
@@ -512,7 +512,7 @@ public class ObjectServiceImpl extends A
 
         if (resp.hasResponseStream()) {
             try {
-                InputStream responseStream = IOUtils.checkForBytes(resp.getStream(), 4096);
+                InputStream responseStream = IOUtils.checkForBytes(resp.getStream(), 8192);
                 if (responseStream != null) {
                     Map<String, Object> json = parseObject(responseStream, resp.getCharset());
                     return JSONConverter.convertFailedToDelete(json);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/cookies/CmisCookieStoreImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/cookies/CmisCookieStoreImpl.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/cookies/CmisCookieStoreImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/cookies/CmisCookieStoreImpl.java Sun Jun 29 19:32:32 2014
@@ -24,9 +24,9 @@ package org.apache.chemistry.opencmis.cl
 
 import java.io.Serializable;
 import java.net.URI;
+import java.util.ArrayDeque;
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.regex.Pattern;
@@ -41,7 +41,7 @@ public class CmisCookieStoreImpl impleme
     private static final Pattern IP_ADDRESS_PATTERN = Pattern.compile(IP_ADDRESS_PATTERN_STR);
 
     private final int maxUrls;
-    private final LinkedList<CmisHttpCookie> storeList;
+    private final ArrayDeque<CmisHttpCookie> storeList;
 
     public CmisCookieStoreImpl() {
         this(300);
@@ -49,7 +49,7 @@ public class CmisCookieStoreImpl impleme
 
     public CmisCookieStoreImpl(final int maxUrls) {
         this.maxUrls = maxUrls;
-        storeList = new LinkedList<CmisHttpCookie>();
+        storeList = new ArrayDeque<CmisHttpCookie>(maxUrls);
     }
 
     public void add(final URI uri, final CmisHttpCookie cookie) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/Response.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/Response.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/Response.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/http/Response.java Sun Jun 29 19:32:32 2014
@@ -97,9 +97,9 @@ public class Response {
                         if (encoding != null) {
                             String encLower = encoding.trim().toLowerCase(Locale.ENGLISH);
                             if (encLower.equals("gzip") && !isGZIP) {
-                                errorStream = new GZIPInputStream(errorStream, 4096);
+                                errorStream = new GZIPInputStream(errorStream, 64 * 1024);
                             } else if (encLower.equals("deflate")) {
-                                errorStream = new InflaterInputStream(errorStream, new Inflater(true), 4096);
+                                errorStream = new InflaterInputStream(errorStream, new Inflater(true), 64 * 1024);
                             }
                         }
 
@@ -157,7 +157,7 @@ public class Response {
                         // if the stream is gzip encoded, decode it
                         length = null;
                         try {
-                            stream = new GZIPInputStream(stream, 4096);
+                            stream = new GZIPInputStream(stream, 64 * 1024);
                         } catch (IOException e) {
                             errorContent = e.getMessage();
                             stream = null;
@@ -166,7 +166,7 @@ public class Response {
                     } else if (encLower.equals("deflate")) {
                         // if the stream is deflate encoded, decode it
                         length = null;
-                        stream = new InflaterInputStream(stream, new Inflater(true), 4096);
+                        stream = new InflaterInputStream(stream, new Inflater(true), 64 * 1024);
                     }
                 }
 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/AbstractPortProvider.java Sun Jun 29 19:32:32 2014
@@ -579,7 +579,7 @@ public abstract class AbstractPortProvid
 
         // parse the WSDL
         try {
-            final Document doc = XMLUtils.parseDomDocument(new BufferedInputStream(wsdlStream, 16 * 1024));
+            final Document doc = XMLUtils.parseDomDocument(new BufferedInputStream(wsdlStream, 64 * 1024));
 
             NodeList serivceList = doc.getElementsByTagNameNS("http://schemas.xmlsoap.org/wsdl/", "service");
             for (int i = 0; i < serivceList.getLength(); i++) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Base64.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Base64.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Base64.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/Base64.java Sun Jun 29 19:32:32 2014
@@ -1215,7 +1215,7 @@ public final class Base64 {
                 try {
                     baos = new java.io.ByteArrayOutputStream();
                     bais = new java.io.ByteArrayInputStream(bytes);
-                    gzis = new java.util.zip.GZIPInputStream(bais);
+                    gzis = new java.util.zip.GZIPInputStream(bais, 64 * 1024);
 
                     while ((length = gzis.read(buffer)) >= 0) {
                         baos.write(buffer, 0, length);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/MimeHelper.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/MimeHelper.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/MimeHelper.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/MimeHelper.java Sun Jun 29 19:32:32 2014
@@ -625,7 +625,7 @@ public final class MimeHelper {
     }
 
     protected static byte[] fromHex(String data) {
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        ByteArrayOutputStream out = new ByteArrayOutputStream(data.length());
         for (int i = 0; i < data.length();) {
             char c = data.charAt(i++);
             if (c == '%') {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/XMLConverter.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/XMLConverter.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/XMLConverter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/XMLConverter.java Sun Jun 29 19:32:32 2014
@@ -24,7 +24,6 @@ import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.GregorianCalendar;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -1020,7 +1019,7 @@ public final class XMLConverter {
             return;
         }
 
-        LinkedList<String> ns = new LinkedList<String>();
+        List<String> ns = new ArrayList<String>();
 
         if (source.getExtensions() != null) {
             for (CmisExtensionElement element : source.getExtensions()) {
@@ -1033,7 +1032,7 @@ public final class XMLConverter {
         }
     }
 
-    private static void writeExtensionElement(XMLStreamWriter writer, CmisExtensionElement source, LinkedList<String> ns)
+    private static void writeExtensionElement(XMLStreamWriter writer, CmisExtensionElement source, List<String> ns)
             throws XMLStreamException {
         if (source == null || source.getName() == null) {
             return;
@@ -1083,7 +1082,7 @@ public final class XMLConverter {
         writer.writeEndElement();
 
         if (addedNamespace) {
-            ns.removeLast();
+            ns.remove(ns.size() - 1);
         }
     }
 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomEntryParser.java Sun Jun 29 19:32:32 2014
@@ -501,7 +501,7 @@ public final class AtomEntryParser {
      */
     private static byte[] copy(XMLStreamReader parser) throws XMLStreamException {
         // create a writer
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        ByteArrayOutputStream out = new ByteArrayOutputStream(32 * 1024);
         XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(out);
 
         writer.writeStartDocument();

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultipartParser.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultipartParser.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultipartParser.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultipartParser.java Sun Jun 29 19:32:32 2014
@@ -18,7 +18,6 @@
  */
 package org.apache.chemistry.opencmis.server.impl.browser;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
@@ -50,7 +49,7 @@ public class MultipartParser {
     private static final String CHARSET_FIELD = "_charset_";
 
     private static final int MAX_FIELD_BYTES = 10 * 1024 * 1024;
-    private static final int BUFFER_SIZE = 128 * 1024;
+    private static final int BUFFER_SIZE = 256 * 1024;
 
     private static final byte CR = 0x0D;
     private static final byte LF = 0x0A;
@@ -345,9 +344,10 @@ public class MultipartParser {
         int len = Math.min(BUFFER_SIZE, bufferCount) - bufferPosition;
         addFieldBytes(len);
 
-        ByteArrayOutputStream bos = new ByteArrayOutputStream(len + 32);
+        byte[] bodyBytes = new byte[len + BUFFER_SIZE];
+        int bodyBytesPos = len;
 
-        bos.write(buffer, bufferPosition, len);
+        System.arraycopy(buffer, bufferPosition, bodyBytes, 0, len);
         bufferPosition = bufferPosition + len;
 
         // read next chunk
@@ -357,22 +357,53 @@ public class MultipartParser {
             boundaryPosition = findBoundary();
 
             if (boundaryPosition > -1) {
+                // last chunk
                 len = boundaryPosition - bufferPosition;
                 addFieldBytes(len);
 
-                bos.write(buffer, bufferPosition, len);
+                if (bodyBytesPos + len >= bodyBytes.length) {
+                    byte[] newBodyBytes = new byte[bodyBytesPos + len];
+                    System.arraycopy(bodyBytes, 0, newBodyBytes, 0, bodyBytesPos);
+                    bodyBytes = newBodyBytes;
+                }
+                System.arraycopy(buffer, bufferPosition, bodyBytes, bodyBytesPos, len);
+                bodyBytesPos += len;
+
                 bufferPosition = boundaryPosition + boundary.length;
                 break;
             } else {
+                // not the last chunk
                 len = Math.min(BUFFER_SIZE, bufferCount) - bufferPosition;
                 addFieldBytes(len);
 
-                bos.write(buffer, bufferPosition, len);
+                if (bodyBytesPos + len >= bodyBytes.length) {
+                    int newSize = bodyBytes.length << 1;
+                    if (newSize < 0 || newSize > MAX_FIELD_BYTES) {
+                        newSize = MAX_FIELD_BYTES;
+                    }
+                    if (newSize < bodyBytesPos + len) {
+                        newSize = bodyBytesPos + BUFFER_SIZE;
+                    }
+                    
+                    byte[] newBodyBytes = new byte[newSize];
+                    System.arraycopy(bodyBytes, 0, newBodyBytes, 0, bodyBytesPos);
+                    bodyBytes = newBodyBytes;
+                }
+                System.arraycopy(buffer, bufferPosition, bodyBytes, bodyBytesPos, len);
+                bodyBytesPos += len;
+
                 bufferPosition = bufferPosition + len;
             }
         }
 
-        return bos.toByteArray();
+        if (bodyBytes.length == bodyBytesPos) {
+            return bodyBytes;
+        }
+
+        byte[] returnBytes = new byte[bodyBytesPos];
+        System.arraycopy(bodyBytes, 0, returnBytes, 0, returnBytes.length);
+
+        return returnBytes;
     }
 
     private void addFieldBytes(int len) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/MultipartParserTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/MultipartParserTest.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/MultipartParserTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/test/java/org/apache/chemistry/opencmis/server/impl/MultipartParserTest.java Sun Jun 29 19:32:32 2014
@@ -34,6 +34,7 @@ import java.util.Random;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
+import org.apache.chemistry.opencmis.commons.impl.IOUtils;
 import org.apache.chemistry.opencmis.server.impl.browser.MultipartParser;
 import org.apache.chemistry.opencmis.server.shared.ThresholdOutputStreamFactory;
 import org.junit.Test;
@@ -204,7 +205,7 @@ public class MultipartParserTest {
     }
 
     @Test
-    public void testManyField() throws Exception {
+    public void testManyFields() throws Exception {
         String boundary = "============";
 
         StringBuilder sb = new StringBuilder("\r\n");
@@ -223,7 +224,46 @@ public class MultipartParserTest {
 
         sb.append("\r\n" + "--" + boundary + "--");
 
-        MultipartParser parser = prepareParser(boundary, sb.toString().getBytes());
+        MultipartParser parser = prepareParser(boundary, sb.toString().getBytes(IOUtils.ISO_8859_1));
+
+        assertMultipartBasics(parser, values.size(), values, false, null, null, null);
+    }
+
+    @Test
+    public void testLargeFields() throws Exception {
+        testLargeFields(64 * 1024);
+        testLargeFields(128 * 1024);
+        testLargeFields(256 * 1024);
+        testLargeFields(512 * 1024);
+        testLargeFields(1024 * 1024);
+    }
+
+    private void testLargeFields(int size) throws Exception {
+        String boundary = "============";
+
+        StringBuilder sb = new StringBuilder("\r\n");
+
+        Random rnd = new Random();
+        Map<String, String> values = new HashMap<String, String>();
+
+        for (int i = 0; i < 5; i++) {
+            String name = "field" + i;
+
+            StringBuilder valueBuffer = new StringBuilder();
+            for (int j = 0; j < size; j++) {
+                valueBuffer.append((char) ('a' + rnd.nextInt(26)));
+            }
+            String value = valueBuffer.toString();
+
+            values.put(name, value);
+
+            sb.append("\r\n--" + boundary + "\r\n" + "Content-Disposition: form-data; name=\"" + name + "\"\r\n\r\n");
+            sb.append(value);
+        }
+
+        sb.append("\r\n" + "--" + boundary + "--");
+
+        MultipartParser parser = prepareParser(boundary, sb.toString().getBytes(IOUtils.ISO_8859_1));
 
         assertMultipartBasics(parser, values.size(), values, false, null, null, null);
     }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareRepository.java Sun Jun 29 19:32:32 2014
@@ -1120,7 +1120,7 @@ public class FileShareRepository {
 
         InputStream stream = null;
         try {
-            stream = new BufferedInputStream(new FileInputStream(file), 4 * 1024);
+            stream = new BufferedInputStream(new FileInputStream(file), 64 * 1024);
             if (offset != null || length != null) {
                 stream = new ContentRangeInputStream(stream, offset, length);
             }
@@ -1614,7 +1614,7 @@ public class FileShareRepository {
         ObjectData obj = null;
         InputStream stream = null;
         try {
-            stream = new BufferedInputStream(new FileInputStream(propFile));
+            stream = new BufferedInputStream(new FileInputStream(propFile), 64 * 1024);
             XMLStreamReader parser = XMLUtils.createParser(stream);
             XMLUtils.findNextStartElemenet(parser);
             obj = XMLConverter.convertObject(parser);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareTypeManager.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareTypeManager.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareTypeManager.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-fileshare/src/main/java/org/apache/chemistry/opencmis/fileshare/FileShareTypeManager.java Sun Jun 29 19:32:32 2014
@@ -138,7 +138,7 @@ public class FileShareTypeManager {
     }
 
     public void loadTypeDefinitionFromFile(String filename) throws IOException, XMLStreamException {
-        loadTypeDefinitionFromStream(new BufferedInputStream(new FileInputStream(filename)));
+        loadTypeDefinitionFromStream(new BufferedInputStream(new FileInputStream(filename), 64 * 1024));
     }
 
     public void loadTypeDefinitionFromResource(String name) throws IOException, XMLStreamException {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/filter/LoggingFilter.java Sun Jun 29 19:32:32 2014
@@ -228,7 +228,7 @@ public class LoggingFilter implements Fi
         BufferedReader in = new BufferedReader(new StringReader(messageBody));
         StringBuffer out = new StringBuffer();
         String line;
-        ByteArrayOutputStream xmlBodyBuffer = new ByteArrayOutputStream();
+        ByteArrayOutputStream xmlBodyBuffer = new ByteArrayOutputStream(32 * 1024);
         boolean boundaryFound;
 
         boolean inXmlOrJsonBody = false;

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java Sun Jun 29 19:32:32 2014
@@ -3218,8 +3218,8 @@ public abstract class AbstractSessionTes
 
         boolean match = true;
 
-        BufferedInputStream as = new BufferedInputStream(actual.getStream());
-        BufferedInputStream es = new BufferedInputStream(expected.getStream());
+        BufferedInputStream as = new BufferedInputStream(actual.getStream(), 64 * 1024);
+        BufferedInputStream es = new BufferedInputStream(expected.getStream(), 64 * 1024);
 
         try {
             int ab = 0;

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateDocumentDialog.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateDocumentDialog.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateDocumentDialog.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/CreateDocumentDialog.java Sun Jun 29 19:32:32 2014
@@ -337,8 +337,8 @@ public class CreateDocumentDialog extend
         InputStream sourceContent = null;
         InputStream docContent = null;
         try {
-            sourceContent = new BufferedInputStream(sourceContentStream.getStream());
-            docContent = new BufferedInputStream(docContentStream.getStream());
+            sourceContent = new BufferedInputStream(sourceContentStream.getStream(), 64 * 1024);
+            docContent = new BufferedInputStream(docContentStream.getStream(), 64 * 1024);
 
             int fb = 0;
             int db = 0;

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java Sun Jun 29 19:32:32 2014
@@ -180,7 +180,8 @@ public class TypesFrame extends JFrame {
                 int chooseResult = fileChooser.showDialog(getRootPane(), "Load XML");
                 if (chooseResult == JFileChooser.APPROVE_OPTION) {
                     try {
-                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()));
+                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()),
+                                64 * 1024);
                         TypeDefinition type = TypeUtils.readFromXML(in);
                         in.close();
 
@@ -206,7 +207,8 @@ public class TypesFrame extends JFrame {
                 int chooseResult = fileChooser.showDialog(getRootPane(), "Load JSON");
                 if (chooseResult == JFileChooser.APPROVE_OPTION) {
                     try {
-                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()));
+                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()),
+                                64 * 1024);
                         TypeDefinition type = TypeUtils.readFromJSON(in);
                         in.close();
 
@@ -269,7 +271,8 @@ public class TypesFrame extends JFrame {
                 int chooseResult = fileChooser.showDialog(getRootPane(), "Load XML");
                 if (chooseResult == JFileChooser.APPROVE_OPTION) {
                     try {
-                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()));
+                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()),
+                                64 * 1024);
                         TypeDefinition type = TypeUtils.readFromXML(in);
                         in.close();
 
@@ -295,7 +298,8 @@ public class TypesFrame extends JFrame {
                 int chooseResult = fileChooser.showDialog(getRootPane(), "Load JSON");
                 if (chooseResult == JFileChooser.APPROVE_OPTION) {
                     try {
-                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()));
+                        InputStream in = new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile()),
+                                64 * 1024);
                         TypeDefinition type = TypeUtils.readFromJSON(in);
                         in.close();
 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java?rev=1606578&r1=1606577&r2=1606578&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java Sun Jun 29 19:32:32 2014
@@ -257,7 +257,7 @@ public class ClientModel {
         ContentStream content = null;
         if ((filename != null) && (filename.length() > 0)) {
             File file = new File(filename);
-            InputStream stream = new LoggingInputStream(new BufferedInputStream(new FileInputStream(file)),
+            InputStream stream = new LoggingInputStream(new BufferedInputStream(new FileInputStream(file), 512 * 1024),
                     file.getName());
 
             content = clientSession.getSession().getObjectFactory()