Author: zhoresh
Date: Wed Nov 17 03:09:47 2010
New Revision: 1035911
URL: http://svn.apache.org/viewvc?rev=1035911&view=rev
Log:
Ref http://codereview.appspot.com/3087042/
Handle empty response for proxy content
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java?rev=1035911&r1=1035910&r2=1035911&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerService.java
Wed Nov 17 03:09:47 2010
@@ -436,10 +436,14 @@ public class GadgetsHandlerService {
GadgetsHandlerApi.HttpResponse beanHttp = null;
if (httpResponse != null) {
- // Stream out the base64-encoded data.
- // Ctor args indicate to encode w/o line breaks.
- Base64InputStream b64input = new
Base64InputStream(httpResponse.getResponse(), true, 0, null);
- String content = IOUtils.toString(b64input);
+ String content = "";
+ if (httpResponse.getContentLength() > 0) {
+ // Stream out the base64-encoded data.
+ // Ctor args indicate to encode w/o line breaks.
+ Base64InputStream b64input =
+ new Base64InputStream(httpResponse.getResponse(), true, 0, null);
+ content = IOUtils.toString(b64input);
+ }
ImmutableList.Builder<GadgetsHandlerApi.NameValuePair> headersBuilder =
ImmutableList.builder();
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java?rev=1035911&r1=1035910&r2=1035911&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
(original)
+++
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/GadgetsHandlerServiceTest.java
Wed Nov 17 03:09:47 2010
@@ -458,6 +458,27 @@ public class GadgetsHandlerServiceTest e
verify();
}
+ @Test
+ public void testGetProxyEmptyData() throws Exception {
+ List<String> fields = ImmutableList.of("proxycontent.*");
+ Uri resUri = Uri.parse("server.com/gadgets/proxy?url=" + RESOURCE);
+ GadgetsHandlerApi.ProxyRequest request = createProxyRequest(RESOURCE,
CONTAINER, fields);
+ Capture<List<ProxyUri>> uriCapture = new Capture<List<ProxyUri>>();
+ expect(proxyUriManager.make(capture(uriCapture), EasyMock.anyInt()))
+ .andReturn(ImmutableList.of(resUri));
+ HttpResponse httpResponse = new
HttpResponseBuilder().setHttpStatusCode(504).create();
+
expect(proxyHandler.fetch(EasyMock.isA(ProxyUri.class))).andReturn(httpResponse);
+ replay();
+ GadgetsHandlerApi.ProxyResponse response = gadgetHandler.getProxy(request);
+ assertEquals(1, uriCapture.getValue().size());
+ ProxyUri pUri = uriCapture.getValue().get(0);
+ assertEquals(CONTAINER, pUri.getContainer());
+ assertNull(response.getProxyUrl());
+ assertEquals("", response.getProxyContent().getContentBase64());
+ assertEquals(504, response.getProxyContent().getCode());
+ verify();
+ }
+
@Test(expected = ProcessingException.class)
public void testGetProxyDataFail() throws Exception {
List<String> fields = ImmutableList.of("proxycontent.*");