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)