You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by be...@apache.org on 2008/08/23 02:28:25 UTC

svn commit: r688232 - in /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http: HttpResponse.java HttpResponseBuilder.java

Author: beaton
Date: Fri Aug 22 17:28:24 2008
New Revision: 688232

URL: http://svn.apache.org/viewvc?rev=688232&view=rev
Log:
Fix an NPE on HttpResponseBuilder.setBytes(null), and get this compiling under
java 1.5.


Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java?rev=688232&r1=688231&r2=688232&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java Fri Aug 22 17:28:24 2008
@@ -24,10 +24,13 @@
 import com.google.inject.name.Named;
 import com.ibm.icu.text.CharsetDetector;
 import com.ibm.icu.text.CharsetMatch;
+
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.shindig.common.util.DateUtil;
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.util.Arrays;
@@ -121,7 +124,18 @@
   private HttpResponse(int httpStatusCode, String body) {
     this(new HttpResponseBuilder()
       .setHttpStatusCode(httpStatusCode)
-      .setResponse(body.getBytes(Charset.forName("UTF-8"))));
+      .setResponse(getUtf8Bytes(body)));
+  }
+  
+  private static byte[] getUtf8Bytes(String body) {
+    try {
+      if (body == null) {
+        return ArrayUtils.EMPTY_BYTE_ARRAY;
+      }
+      return body.getBytes(DEFAULT_ENCODING);
+    } catch (UnsupportedEncodingException e) {
+      throw new RuntimeException(e);
+    }
   }
 
   public HttpResponse(String body) {

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java?rev=688232&r1=688231&r2=688232&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java Fri Aug 22 17:28:24 2008
@@ -63,6 +63,9 @@
    * @param responseBytes The response body. Copied when set.
    */
   public HttpResponseBuilder setResponse(byte[] responseBytes) {
+    if (responseBytes == null) {
+      responseBytes = ArrayUtils.EMPTY_BYTE_ARRAY;
+    }
     this.responseBytes = new byte[responseBytes.length];
     System.arraycopy(responseBytes, 0, this.responseBytes, 0, responseBytes.length);
     return this;