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)