You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2010/01/29 03:04:35 UTC

svn commit: r904341 - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/http/HttpResponse.java test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java

Author: lindner
Date: Fri Jan 29 02:04:35 2010
New Revision: 904341

URL: http://svn.apache.org/viewvc?rev=904341&view=rev
Log:
SHINDIG-1275 | Patch from Michael Hermanto | HttpResponse.getAndUpdateEncoding() barf with ArrayOutOfBoundsException upon empty header Content-Type

Modified:
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
    incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.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=904341&r1=904340&r2=904341&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 Jan 29 02:04:35 2010
@@ -457,7 +457,9 @@
     if (!values.isEmpty()) {
       String contentType = values.iterator().next();
       String[] parts = StringUtils.split(contentType, ';');
-      if (BINARY_CONTENT_TYPES.contains(parts[0])) {
+      if (parts == null
+          || parts.length == 0
+          || BINARY_CONTENT_TYPES.contains(parts[0])) {
         return DEFAULT_ENCODING;
       }
       if (parts.length == 2) {

Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java?rev=904341&r1=904340&r2=904341&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/http/HttpResponseTest.java Fri Jan 29 02:04:35 2010
@@ -156,6 +156,15 @@
   }
 
   @Test
+  public void testEncodingDetectionWithEmptyContentType() throws Exception {
+    HttpResponse response = new HttpResponseBuilder()
+        .addHeader("Content-Type", "")
+        .setResponseString("something")
+        .create();
+    assertEquals(HttpResponse.DEFAULT_ENCODING.name(), response.getEncoding());
+  }
+  
+  @Test
   public void testEncodingDetectionUtf8WithBomNoContentHeader() throws Exception {
     HttpResponse response = new HttpResponseBuilder()
         .setResponse(UTF8_DATA)