Return-Path: X-Original-To: apmail-qpid-commits-archive@www.apache.org Delivered-To: apmail-qpid-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id EFE6818EFD for ; Thu, 2 Jul 2015 13:10:26 +0000 (UTC) Received: (qmail 92883 invoked by uid 500); 2 Jul 2015 13:10:26 -0000 Delivered-To: apmail-qpid-commits-archive@qpid.apache.org Received: (qmail 92860 invoked by uid 500); 2 Jul 2015 13:10:26 -0000 Mailing-List: contact commits-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@qpid.apache.org Delivered-To: mailing list commits@qpid.apache.org Received: (qmail 92851 invoked by uid 99); 2 Jul 2015 13:10:26 -0000 Received: from eris.apache.org (HELO hades.apache.org) (140.211.11.105) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Jul 2015 13:10:26 +0000 Received: from hades.apache.org (localhost [127.0.0.1]) by hades.apache.org (ASF Mail Server at hades.apache.org) with ESMTP id B4F7EAC0330 for ; Thu, 2 Jul 2015 13:10:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1688819 - /qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Date: Thu, 02 Jul 2015 13:10:26 -0000 To: commits@qpid.apache.org From: orudyy@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20150702131026.B4F7EAC0330@hades.apache.org> 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> 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> 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> 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> 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