Consistent logging of selected media types

This commit is contained in:
Rossen Stoyanchev
2018-07-24 18:32:04 -04:00
parent 36a07aa897
commit 0be8c20fca
2 changed files with 39 additions and 38 deletions

View File

@@ -143,28 +143,30 @@ public abstract class HandlerResultHandlerSupport implements Ordered {
List<MediaType> result = new ArrayList<>(compatibleMediaTypes);
MediaType.sortBySpecificityAndQuality(result);
MediaType selected = null;
for (MediaType mediaType : result) {
if (mediaType.isConcrete()) {
if (logger.isDebugEnabled()) {
logger.debug(exchange.getLogPrefix() + "Using '" + mediaType + "' given " + acceptableTypes);
}
return mediaType;
selected = mediaType;
break;
}
else if (mediaType.equals(MediaType.ALL) || mediaType.equals(MEDIA_TYPE_APPLICATION_ALL)) {
mediaType = MediaType.APPLICATION_OCTET_STREAM;
if (logger.isDebugEnabled()) {
logger.debug(exchange.getLogPrefix() + "Using '" + mediaType + "' given " + acceptableTypes);
}
return mediaType;
selected = MediaType.APPLICATION_OCTET_STREAM;
break;
}
}
if (logger.isDebugEnabled()) {
if (selected != null) {
if (logger.isDebugEnabled()) {
logger.debug("Using '" + selected + "' given " +
acceptableTypes + " and supported " + producibleTypes);
}
}
else if (logger.isDebugEnabled()) {
logger.debug(exchange.getLogPrefix() +
"No match for " + acceptableTypes + ", supported: " + producibleTypes);
}
return null;
return selected;
}
private List<MediaType> getAcceptableTypes(ServerWebExchange exchange) {