diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java index 0e0acb407176..fbf0ebaed4a5 100644 --- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java +++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java @@ -39,6 +39,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.eclipse.jetty.http.HttpHeader; import org.eclipse.jetty.http.QuotedQualityCSV; import org.eclipse.jetty.io.ConnectionStatistics; import org.eclipse.jetty.server.AbstractConnector; @@ -212,8 +213,17 @@ private void writeJsonResponse(HttpServletResponse response) throws IOException private List getOrderedAcceptableMimeTypes(HttpServletRequest request) { - QuotedQualityCSV values = null; - Enumeration enumAccept = request.getHeaders("Accept"); + QuotedQualityCSV values = new QuotedQualityCSV(QuotedQualityCSV.MOST_SPECIFIC_MIME_ORDERING); + + // No accept header specified, try 'accept' parameter (for those clients that are + // so ancient that they cannot set the standard HTTP `Accept` header) + String acceptParameter = request.getParameter("accept"); + if (acceptParameter != null) + { + values.addValue(acceptParameter); + } + + Enumeration enumAccept = request.getHeaders(HttpHeader.ACCEPT.toString()); if (enumAccept != null) { while (enumAccept.hasMoreElements()) @@ -221,31 +231,18 @@ private List getOrderedAcceptableMimeTypes(HttpServletRequest request) String value = enumAccept.nextElement(); if (StringUtil.isNotBlank(value)) { - if (values == null) - { - values = new QuotedQualityCSV(QuotedQualityCSV.MOST_SPECIFIC_MIME_ORDERING); - } values.addValue(value); } } } - if (values != null) - { - return values.getValues(); - } - - // No accept header specified, try 'accept' parameter (for those clients that are - // so ancient that they cannot set the standard HTTP `Accept` header) - String acceptParameter = request.getParameter("accept"); - if (acceptParameter != null) + if (values.isEmpty()) { - // return that we support the one type specified in the 'accept' parameter - return Collections.singletonList(acceptParameter); + // return that we allow ALL mime types + return Collections.singletonList("*/*"); } - // return that we allow ALL mime types - return Collections.singletonList("*/*"); + return values.getValues(); } private boolean isLoopbackAddress(String address)