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();
+  }
 }