Author: ssievers
Date: Fri May 11 11:42:35 2012
New Revision: 1337115
URL: http://svn.apache.org/viewvc?rev=1337115&view=rev
Log:
SHINDIG-1770 | Improve JsServlet to respond with an error and error message if
there was a problem
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsServingPipeline.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsServingPipeline.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsServingPipeline.java?rev=1337115&r1=1337114&r2=1337115&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsServingPipeline.java
(original)
+++
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/js/DefaultJsServingPipeline.java
Fri May 11 11:42:35 2012
@@ -39,6 +39,10 @@ public class DefaultJsServingPipeline im
public JsResponse execute(JsRequest jsRequest) throws JsException {
JsResponseBuilder resp = new JsResponseBuilder();
jsProcessorRegistry.process(jsRequest, resp);
- return resp.build();
+ final JsResponse response = resp.build();
+ if (response.isError()) {
+ throw new JsException(response.getStatusCode(),
response.toErrorString());
+ }
+ return response;
}
}
Modified:
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
URL:
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java?rev=1337115&r1=1337114&r2=1337115&view=diff
==============================================================================
---
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
(original)
+++
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
Fri May 11 11:42:35 2012
@@ -33,6 +33,7 @@ import org.apache.shindig.gadgets.js.Def
import org.apache.shindig.gadgets.js.DefaultJsServingPipeline;
import org.apache.shindig.gadgets.js.GetJsContentProcessor;
import org.apache.shindig.gadgets.js.IfModifiedSinceProcessor;
+import org.apache.shindig.gadgets.js.JsException;
import org.apache.shindig.gadgets.js.JsLoadProcessor;
import org.apache.shindig.gadgets.js.JsProcessor;
import org.apache.shindig.gadgets.js.JsProcessorRegistry;
@@ -40,6 +41,7 @@ import org.apache.shindig.gadgets.js.JsR
import org.apache.shindig.gadgets.js.JsRequestBuilder;
import org.apache.shindig.gadgets.js.JsResponse;
import org.apache.shindig.gadgets.js.JsResponseBuilder;
+import org.apache.shindig.gadgets.js.JsServingPipeline;
import org.apache.shindig.gadgets.uri.JsUriManager;
import org.apache.shindig.gadgets.uri.JsUriManager.JsUri;
import org.apache.shindig.gadgets.uri.UriStatus;
@@ -237,4 +239,26 @@ public class JsServletTest extends Servl
recorder.getResponseAsString());
verify();
}
+
+ @Test
+ public void testJsServletGivesErrorWhenJsResponseHasError() throws Exception
{
+ setUp(0);
+ JsProcessor errorProcessor = new JsProcessor(){
+ public boolean process(JsRequest jsRequest, JsResponseBuilder builder)
throws JsException {
+ builder.setStatusCode(HttpServletResponse.SC_NOT_FOUND);
+ builder.addError("Something bad happened");
+ return false;
+ }};
+ JsProcessorRegistry jsProcessorRegistry = new DefaultJsProcessorRegistry(
+ ImmutableList.<JsProcessor> of(errorProcessor),
ImmutableList.<JsProcessor> of());
+
+ JsServingPipeline pipeline = new
DefaultJsServingPipeline(jsProcessorRegistry);
+ servlet.setJsServingPipeline(pipeline);
+ replay();
+
+ servlet.doGet(request, recorder);
+ assertEquals(HttpServletResponse.SC_NOT_FOUND,
recorder.getHttpStatusCode());
+ assertEquals("Something bad happened", recorder.getResponseAsString());
+ verify();
+ }
}