killbill-memoizeit

jaxrs: avoid double-committing plugin responses Signed-off-by:

5/13/2013 6:03:30 PM

Details

diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PluginResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PluginResource.java
index fae67ff..4aff903 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PluginResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/PluginResource.java
@@ -118,7 +118,12 @@ public class PluginResource extends JaxRsResourceBase {
         prepareOSGIRequest(request, servletContext, servletConfig);
         osgiServlet.service(new OSGIServletRequestWrapper(request), new OSGIServletResponseWrapper(response));
 
-        return Response.status(response.getStatus()).build();
+        if (response.isCommitted()) {
+            // Jersey will want to return 204, but the servlet should have done the right thing already
+            return null;
+        } else {
+            return Response.status(response.getStatus()).build();
+        }
     }
 
     private void prepareOSGIRequest(final HttpServletRequest request, final ServletContext servletContext, final ServletConfig servletConfig) {