Polishing

This commit is contained in:
Juergen Hoeller 2020-10-06 15:31:34 +02:00
parent 1745a3f25d
commit f83bb7183e
5 changed files with 37 additions and 21 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2019 the original author or authors. * Copyright 2002-2020 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -272,8 +272,7 @@ public class DefaultStompSession implements ConnectionHandlingStompSession {
} }
private boolean isEmpty(@Nullable Object payload) { private boolean isEmpty(@Nullable Object payload) {
return payload == null || StringUtils.isEmpty(payload) || return (StringUtils.isEmpty(payload) || (payload instanceof byte[] && ((byte[]) payload).length == 0));
(payload instanceof byte[] && ((byte[]) payload).length == 0);
} }
private void execute(Message<byte[]> message) { private void execute(Message<byte[]> message) {

View File

@ -82,7 +82,7 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
/** /**
* Sub-classes can use this method to access the "native" headers sub-map. * Subclasses can use this method to access the "native" headers sub-map.
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Nullable @Nullable
@ -139,6 +139,7 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
/** /**
* Whether the native header map contains the give header name. * Whether the native header map contains the give header name.
* @param headerName the name of the header
*/ */
public boolean containsNativeHeader(String headerName) { public boolean containsNativeHeader(String headerName) {
Map<String, List<String>> map = getNativeHeaders(); Map<String, List<String>> map = getNativeHeaders();
@ -146,7 +147,9 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
} }
/** /**
* Return the values for the specified native header, if present. * Return all values for the specified native header, if present.
* @param headerName the name of the header
* @return the associated values, or {@code null} if none
*/ */
@Nullable @Nullable
public List<String> getNativeHeader(String headerName) { public List<String> getNativeHeader(String headerName) {
@ -156,13 +159,15 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
/** /**
* Return the first value for the specified native header, if present. * Return the first value for the specified native header, if present.
* @param headerName the name of the header
* @return the associated value, or {@code null} if none
*/ */
@Nullable @Nullable
public String getFirstNativeHeader(String headerName) { public String getFirstNativeHeader(String headerName) {
Map<String, List<String>> map = getNativeHeaders(); Map<String, List<String>> map = getNativeHeaders();
if (map != null) { if (map != null) {
List<String> values = map.get(headerName); List<String> values = map.get(headerName);
if (values != null) { if (!CollectionUtils.isEmpty(values)) {
return values.get(0); return values.get(0);
} }
} }
@ -200,6 +205,8 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
* Add the specified native header value to existing values. * Add the specified native header value to existing values.
* <p>In order for this to work, the accessor must be {@link #isMutable() * <p>In order for this to work, the accessor must be {@link #isMutable()
* mutable}. See {@link MessageHeaderAccessor} for details. * mutable}. See {@link MessageHeaderAccessor} for details.
* @param name the name of the header
* @param value the header value to set
*/ */
public void addNativeHeader(String name, @Nullable String value) { public void addNativeHeader(String name, @Nullable String value) {
Assert.state(isMutable(), "Already immutable"); Assert.state(isMutable(), "Already immutable");
@ -216,6 +223,10 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
setModified(true); setModified(true);
} }
/**
* Add the specified native headers to existing values.
* @param headers the headers to set
*/
public void addNativeHeaders(@Nullable MultiValueMap<String, String> headers) { public void addNativeHeaders(@Nullable MultiValueMap<String, String> headers) {
if (headers == null) { if (headers == null) {
return; return;
@ -227,24 +238,34 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
* Remove the specified native header value replacing existing values. * Remove the specified native header value replacing existing values.
* <p>In order for this to work, the accessor must be {@link #isMutable() * <p>In order for this to work, the accessor must be {@link #isMutable()
* mutable}. See {@link MessageHeaderAccessor} for details. * mutable}. See {@link MessageHeaderAccessor} for details.
* @param headerName the name of the header
* @return the associated values, or {@code null} if the header was not present
*/ */
@Nullable @Nullable
public List<String> removeNativeHeader(String name) { public List<String> removeNativeHeader(String headerName) {
Assert.state(isMutable(), "Already immutable"); Assert.state(isMutable(), "Already immutable");
Map<String, List<String>> nativeHeaders = getNativeHeaders(); Map<String, List<String>> nativeHeaders = getNativeHeaders();
if (nativeHeaders == null) { if (CollectionUtils.isEmpty(nativeHeaders)) {
return null; return null;
} }
return nativeHeaders.remove(name); return nativeHeaders.remove(headerName);
} }
/**
* Return the first value for the specified native header,
* or {@code null} if none.
* @param headerName the name of the header
* @param headers the headers map to introspect
* @return the associated value, or {@code null} if none
*/
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Nullable @Nullable
public static String getFirstNativeHeader(String headerName, Map<String, Object> headers) { public static String getFirstNativeHeader(String headerName, Map<String, Object> headers) {
Map<String, List<String>> map = (Map<String, List<String>>) headers.get(NATIVE_HEADERS); Map<String, List<String>> map = (Map<String, List<String>>) headers.get(NATIVE_HEADERS);
if (map != null) { if (map != null) {
List<String> values = map.get(headerName); List<String> values = map.get(headerName);
if (values != null) { if (!CollectionUtils.isEmpty(values)) {
return values.get(0); return values.get(0);
} }
} }

View File

@ -700,8 +700,8 @@ public class MockHttpServletRequestBuilder
String query = this.url.getRawQuery(); String query = this.url.getRawQuery();
if (!this.queryParams.isEmpty()) { if (!this.queryParams.isEmpty()) {
String s = UriComponentsBuilder.newInstance().queryParams(this.queryParams).build().encode().getQuery(); String str = UriComponentsBuilder.newInstance().queryParams(this.queryParams).build().encode().getQuery();
query = StringUtils.isEmpty(query) ? s : query + "&" + s; query = StringUtils.hasLength(query) ? (query + "&" + str) : str;
} }
if (query != null) { if (query != null) {
request.setQueryString(query); request.setQueryString(query);

View File

@ -245,10 +245,10 @@ public final class ResponseCookie extends HttpCookie {
@Nullable @Nullable
private String initDomain(String domain) { private String initDomain(String domain) {
if (lenient && !StringUtils.isEmpty(domain)) { if (lenient && StringUtils.hasLength(domain)) {
String s = domain.trim(); String str = domain.trim();
if (s.startsWith("\"") && s.endsWith("\"")) { if (str.startsWith("\"") && str.endsWith("\"")) {
if (s.substring(1, s.length() - 1).trim().isEmpty()) { if (str.substring(1, str.length() - 1).trim().isEmpty()) {
return null; return null;
} }
} }

View File

@ -38,7 +38,6 @@ import org.springframework.core.io.buffer.PooledDataBuffer;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod; import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.util.Assert;
/** /**
* {@link ClientHttpRequest} implementation for the Jetty ReactiveStreams HTTP client. * {@link ClientHttpRequest} implementation for the Jetty ReactiveStreams HTTP client.
@ -62,9 +61,7 @@ class JettyClientHttpRequest extends AbstractClientHttpRequest {
@Override @Override
public HttpMethod getMethod() { public HttpMethod getMethod() {
HttpMethod method = HttpMethod.resolve(this.jettyRequest.getMethod()); return HttpMethod.valueOf(this.jettyRequest.getMethod());
Assert.state(method != null, "Method must not be null");
return method;
} }
@Override @Override
@ -117,7 +114,6 @@ class JettyClientHttpRequest extends AbstractClientHttpRequest {
public void succeeded() { public void succeeded() {
DataBufferUtils.release(buffer); DataBufferUtils.release(buffer);
} }
@Override @Override
public void failed(Throwable x) { public void failed(Throwable x) {
DataBufferUtils.release(buffer); DataBufferUtils.release(buffer);