You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ss...@apache.org on 2012/05/11 13:42:35 UTC
svn commit: r1337115 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/js/DefaultJsServingPipeline.java
test/java/org/apache/shindig/gadgets/servlet/JsServletTest.java
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();
+ }
}