You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2015/07/02 15:10:26 UTC

svn commit: r1688819 - /qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java

Author: orudyy
Date: Thu Jul  2 13:10:26 2015
New Revision: 1688819

URL: http://svn.apache.org/r1688819
Log:
QPID-6617: Set correct error response in case of exception in RestServlet GET handling (work by Lorenz Quack)

Modified:
    qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1688819&r1=1688818&r2=1688819&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Thu Jul  2 13:10:26 2015
@@ -339,68 +339,75 @@ public class RestServlet extends Abstrac
     @Override
     protected void doGetWithSubjectAndActor(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
     {
-        String[] pathInfoElements = getPathInfoElements(request);
-        if (pathInfoElements != null && pathInfoElements.length == _hierarchy.length + 1)
+        try
         {
-            doOperation(request, response);
-        }
-        else
-        {
-            // TODO - sort special params, everything else should act as a filter
-            String attachmentFilename = request.getParameter(CONTENT_DISPOSITION_ATTACHMENT_FILENAME_PARAM);
-            boolean extractInitialConfig = getBooleanParameterFromRequest(request, EXTRACT_INITIAL_CONFIG_PARAM);
-
-            if (attachmentFilename != null)
-            {
-                setContentDispositionHeaderIfNecessary(response, attachmentFilename);
-            }
-
-            Collection<ConfiguredObject<?>> allObjects = getObjects(request);
-
-            if (allObjects.isEmpty() && isSingleObjectRequest(request))
+            String[] pathInfoElements = getPathInfoElements(request);
+            if (pathInfoElements != null && pathInfoElements.length == _hierarchy.length + 1)
             {
-                sendJsonErrorResponse(request, response, HttpServletResponse.SC_NOT_FOUND, "Not Found");
-                return;
-            }
-
-            int depth;
-            boolean actuals;
-            boolean includeSystemContext;
-            boolean inheritedActuals;
-            int oversizeThreshold;
-
-            if (extractInitialConfig)
-            {
-                depth = Integer.MAX_VALUE;
-                oversizeThreshold = Integer.MAX_VALUE;
-                actuals = true;
-                includeSystemContext = false;
-                inheritedActuals = false;
+                doOperation(request, response);
             }
             else
             {
-                depth = getIntParameterFromRequest(request, DEPTH_PARAM, DEFAULT_DEPTH);
-                oversizeThreshold = getIntParameterFromRequest(request, OVERSIZE_PARAM, DEFAULT_OVERSIZE);
-                actuals = getBooleanParameterFromRequest(request, ACTUALS_PARAM);
-                includeSystemContext = getBooleanParameterFromRequest(request, INCLUDE_SYS_CONTEXT_PARAM);
-                inheritedActuals = getBooleanParameterFromRequest(request, INHERITED_ACTUALS_PARAM);
-            }
-
-            List<Map<String, Object>> output = new ArrayList<>();
-            for (ConfiguredObject configuredObject : allObjects)
-            {
-
-                output.add(_objectConverter.convertObjectToMap(configuredObject, getConfiguredClass(),
-                        depth, actuals, inheritedActuals, includeSystemContext, extractInitialConfig, oversizeThreshold, request.isSecure()));
+                // TODO - sort special params, everything else should act as a filter
+                String attachmentFilename = request.getParameter(CONTENT_DISPOSITION_ATTACHMENT_FILENAME_PARAM);
+                boolean extractInitialConfig = getBooleanParameterFromRequest(request, EXTRACT_INITIAL_CONFIG_PARAM);
+
+                if (attachmentFilename != null)
+                {
+                    setContentDispositionHeaderIfNecessary(response, attachmentFilename);
+                }
+
+                Collection<ConfiguredObject<?>> allObjects = getObjects(request);
+
+                if (allObjects.isEmpty() && isSingleObjectRequest(request))
+                {
+                    sendJsonErrorResponse(request, response, HttpServletResponse.SC_NOT_FOUND, "Not Found");
+                    return;
+                }
+
+                int depth;
+                boolean actuals;
+                boolean includeSystemContext;
+                boolean inheritedActuals;
+                int oversizeThreshold;
+
+                if (extractInitialConfig)
+                {
+                    depth = Integer.MAX_VALUE;
+                    oversizeThreshold = Integer.MAX_VALUE;
+                    actuals = true;
+                    includeSystemContext = false;
+                    inheritedActuals = false;
+                }
+                else
+                {
+                    depth = getIntParameterFromRequest(request, DEPTH_PARAM, DEFAULT_DEPTH);
+                    oversizeThreshold = getIntParameterFromRequest(request, OVERSIZE_PARAM, DEFAULT_OVERSIZE);
+                    actuals = getBooleanParameterFromRequest(request, ACTUALS_PARAM);
+                    includeSystemContext = getBooleanParameterFromRequest(request, INCLUDE_SYS_CONTEXT_PARAM);
+                    inheritedActuals = getBooleanParameterFromRequest(request, INHERITED_ACTUALS_PARAM);
+                }
+
+                List<Map<String, Object>> output = new ArrayList<>();
+                for (ConfiguredObject configuredObject : allObjects)
+                {
+
+                    output.add(_objectConverter.convertObjectToMap(configuredObject, getConfiguredClass(),
+                            depth, actuals, inheritedActuals, includeSystemContext, extractInitialConfig, oversizeThreshold, request.isSecure()));
+                }
+
+
+                boolean sendCachingHeaders = attachmentFilename == null;
+                sendJsonResponse(extractInitialConfig && output.size() == 1 ? output.get(0) : output,
+                        request,
+                        response,
+                        HttpServletResponse.SC_OK,
+                        sendCachingHeaders);
             }
-
-
-            boolean sendCachingHeaders = attachmentFilename == null;
-            sendJsonResponse(extractInitialConfig && output.size() == 1 ? output.get(0) : output,
-                    request,
-                    response,
-                    HttpServletResponse.SC_OK,
-                    sendCachingHeaders);
+        }
+        catch (RuntimeException e)
+        {
+            setResponseStatus(request, response, e);
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org