You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by bl...@apache.org on 2010/04/09 19:24:09 UTC

svn commit: r932520 - /incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/StringProvider.java

Author: bluk
Date: Fri Apr  9 17:24:09 2010
New Revision: 932520

URL: http://svn.apache.org/viewvc?rev=932520&view=rev
Log:
Update StringProvider to increase performance

Thanks to Doug Larson for performance analysis.

Modified:
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/StringProvider.java

Modified: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/StringProvider.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/StringProvider.java?rev=932520&r1=932519&r2=932520&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/StringProvider.java (original)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/StringProvider.java Fri Apr  9 17:24:09 2010
@@ -19,12 +19,15 @@
  *******************************************************************************/
 package org.apache.wink.common.internal.providers.entity;
 
+import java.io.BufferedWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.io.UnsupportedEncodingException;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
+import java.nio.charset.Charset;
 
 import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
@@ -94,12 +97,16 @@ public class StringProvider implements M
                         MediaType mediaType,
                         MultivaluedMap<String, Object> httpHeaders,
                         OutputStream entityStream) throws IOException, WebApplicationException {
-        
+
         ProviderUtils.setDefaultCharsetOnMediaTypeHeader(httpHeaders, mediaType);
 
         logger.debug("Writing {} to stream using {}", t, getClass().getName()); //$NON-NLS-1$
 
-        entityStream.write(t.getBytes(ProviderUtils.getCharset(mediaType)));
+        Charset charset = Charset.forName(ProviderUtils.getCharset(mediaType));
+        OutputStreamWriter writer = new OutputStreamWriter(entityStream, charset);
+        BufferedWriter bw = new BufferedWriter(writer);
+        bw.write(t, 0, t.length());
+        bw.flush();
     }
 
 }