parent
31c5644691
commit
ab9fea6b8d
|
@ -213,8 +213,9 @@ final class HtmlUnitRequestBuilder implements RequestBuilder, Mergeable {
|
|||
|
||||
private void authType(MockHttpServletRequest request) {
|
||||
String authorization = header("Authorization");
|
||||
if (authorization != null) {
|
||||
request.setAuthType(StringUtils.split(authorization, ": ")[0]);
|
||||
String[] authSplit = StringUtils.split(authorization, ": ");
|
||||
if (authSplit != null) {
|
||||
request.setAuthType(authSplit[0]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -434,20 +435,19 @@ final class HtmlUnitRequestBuilder implements RequestBuilder, Mergeable {
|
|||
|
||||
@Override
|
||||
public Object merge(Object parent) {
|
||||
if (parent == null) {
|
||||
return this;
|
||||
if (parent instanceof RequestBuilder) {
|
||||
if (parent instanceof MockHttpServletRequestBuilder) {
|
||||
MockHttpServletRequestBuilder copiedParent = MockMvcRequestBuilders.get("/");
|
||||
copiedParent.merge(parent);
|
||||
this.parentBuilder = copiedParent;
|
||||
}
|
||||
else {
|
||||
this.parentBuilder = (RequestBuilder) parent;
|
||||
}
|
||||
if (parent instanceof SmartRequestBuilder) {
|
||||
this.parentPostProcessor = (SmartRequestBuilder) parent;
|
||||
}
|
||||
}
|
||||
if (parent instanceof MockHttpServletRequestBuilder) {
|
||||
MockHttpServletRequestBuilder copiedParent = MockMvcRequestBuilders.get("/");
|
||||
copiedParent.merge(parent);
|
||||
this.parentBuilder = copiedParent;
|
||||
} else if (parent instanceof RequestBuilder) {
|
||||
this.parentBuilder = (RequestBuilder) parent;
|
||||
}
|
||||
if (parent instanceof SmartRequestBuilder) {
|
||||
this.parentPostProcessor = (SmartRequestBuilder) parent;
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,10 +32,10 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
|
|||
* an event to a {@link TransactionalEventListener} annotated method. Supports
|
||||
* the exact same features as any regular {@link EventListener} annotated method
|
||||
* but is aware of the transactional context of the event publisher.
|
||||
* <p>
|
||||
* Processing of {@link TransactionalEventListener} is enabled automatically when
|
||||
* Spring's transaction management is enabled. For other cases, registering a
|
||||
* bean of type {@link TransactionalEventListenerFactory} is required.
|
||||
*
|
||||
* <p>Processing of {@link TransactionalEventListener} is enabled automatically
|
||||
* when Spring's transaction management is enabled. For other cases, registering
|
||||
* a bean of type {@link TransactionalEventListenerFactory} is required.
|
||||
*
|
||||
* @author Stephane Nicoll
|
||||
* @author Juergen Hoeller
|
||||
|
@ -69,8 +69,11 @@ class ApplicationListenerMethodTransactionalAdapter extends ApplicationListenerM
|
|||
}
|
||||
processEvent(event);
|
||||
}
|
||||
else if (logger.isDebugEnabled()) {
|
||||
logger.debug("No transaction is running - skipping " + event);
|
||||
else {
|
||||
// No transactional event execution at all
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("No transaction is active - skipping " + event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -808,13 +808,14 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
|
|||
|
||||
/**
|
||||
* Set the (new) value of the {@code Host} header.
|
||||
* <p>If the given {@linkplain InetSocketAddress#getPort() port} is {@code 0}, the host header
|
||||
* will only contain the {@linkplain InetSocketAddress#getHostString() hostname}.
|
||||
* <p>If the given {@linkplain InetSocketAddress#getPort() port} is {@code 0},
|
||||
* the host header will only contain the
|
||||
* {@linkplain InetSocketAddress#getHostString() hostname}.
|
||||
* @since 5.0
|
||||
*/
|
||||
public void setHost(InetSocketAddress host) {
|
||||
String value =
|
||||
host.getPort() != 0 ? String.format("%s:%d", host.getHostString(), host.getPort()) :
|
||||
host.getHostString();
|
||||
String value = (host.getPort() != 0 ?
|
||||
String.format("%s:%d", host.getHostString(), host.getPort()) : host.getHostString());
|
||||
set(HOST, value);
|
||||
}
|
||||
|
||||
|
@ -822,6 +823,7 @@ public class HttpHeaders implements MultiValueMap<String, String>, Serializable
|
|||
* Return the value of the required {@code Host} header.
|
||||
* <p>If the header value does not contain a port, the returned
|
||||
* {@linkplain InetSocketAddress#getPort() port} will be {@code 0}.
|
||||
* @since 5.0
|
||||
*/
|
||||
public InetSocketAddress getHost() {
|
||||
String value = getFirst(HOST);
|
||||
|
|
|
@ -56,8 +56,8 @@ public abstract class HttpRange {
|
|||
public ResourceRegion toResourceRegion(Resource resource) {
|
||||
// Don't try to determine contentLength on InputStreamResource - cannot be read afterwards...
|
||||
// Note: custom InputStreamResource subclasses could provide a pre-calculated content length!
|
||||
Assert.isTrue(InputStreamResource.class != resource.getClass(),
|
||||
"Can't convert an InputStreamResource to a ResourceRegion");
|
||||
Assert.isTrue(resource.getClass() != InputStreamResource.class,
|
||||
"Cannot convert an InputStreamResource to a ResourceRegion");
|
||||
try {
|
||||
long contentLength = resource.contentLength();
|
||||
Assert.isTrue(contentLength > 0, "Resource content length should be > 0");
|
||||
|
@ -163,12 +163,12 @@ public abstract class HttpRange {
|
|||
}
|
||||
|
||||
/**
|
||||
* Convert each {@code HttpRange} into a {@code ResourceRegion},
|
||||
* selecting the appropriate segment of the given {@code Resource}
|
||||
* using the HTTP Range information.
|
||||
* Convert each {@code HttpRange} into a {@code ResourceRegion}, selecting the
|
||||
* appropriate segment of the given {@code Resource} using HTTP Range information.
|
||||
* @param ranges the list of ranges
|
||||
* @param resource the resource to select the regions from
|
||||
* @return the list of regions for the given resource
|
||||
* @since 4.3
|
||||
*/
|
||||
public static List<ResourceRegion> toResourceRegions(List<HttpRange> ranges, Resource resource) {
|
||||
if (CollectionUtils.isEmpty(ranges)) {
|
||||
|
|
|
@ -114,11 +114,13 @@ public class MediaType extends MimeType implements Serializable {
|
|||
|
||||
/**
|
||||
* Public constant media type for {@code application/pdf}.
|
||||
* @since 4.3
|
||||
*/
|
||||
public final static MediaType APPLICATION_PDF;
|
||||
|
||||
/**
|
||||
* A String equivalent of {@link MediaType#APPLICATION_PDF}.
|
||||
* @since 4.3
|
||||
*/
|
||||
public final static String APPLICATION_PDF_VALUE = "application/pdf";
|
||||
|
||||
|
@ -194,11 +196,13 @@ public class MediaType extends MimeType implements Serializable {
|
|||
|
||||
/**
|
||||
* Public constant media type for {@code text/markdown}.
|
||||
* @since 4.3
|
||||
*/
|
||||
public final static MediaType TEXT_MARKDOWN;
|
||||
|
||||
/**
|
||||
* A String equivalent of {@link MediaType#TEXT_MARKDOWN}.
|
||||
* @since 4.3
|
||||
*/
|
||||
public final static String TEXT_MARKDOWN_VALUE = "text/markdown";
|
||||
|
||||
|
@ -296,6 +300,7 @@ public class MediaType extends MimeType implements Serializable {
|
|||
* @param other the other media type
|
||||
* @param charset the character set
|
||||
* @throws IllegalArgumentException if any of the parameters contain illegal characters
|
||||
* @since 4.3
|
||||
*/
|
||||
public MediaType(MediaType other, Charset charset) {
|
||||
super(other, charset);
|
||||
|
|
|
@ -118,11 +118,11 @@ public class WebSocketExtension {
|
|||
public String toString() {
|
||||
StringBuilder str = new StringBuilder();
|
||||
str.append(this.name);
|
||||
for (String param : parameters.keySet()) {
|
||||
for (Map.Entry<String, String> entry : this.parameters.entrySet()) {
|
||||
str.append(';');
|
||||
str.append(param);
|
||||
str.append(entry.getKey());
|
||||
str.append('=');
|
||||
str.append(this.parameters.get(param));
|
||||
str.append(entry.getValue());
|
||||
}
|
||||
return str.toString();
|
||||
}
|
||||
|
@ -136,16 +136,17 @@ public class WebSocketExtension {
|
|||
* @throws IllegalArgumentException if the string cannot be parsed
|
||||
*/
|
||||
public static List<WebSocketExtension> parseExtensions(String extensions) {
|
||||
if (!StringUtils.hasText(extensions)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
else {
|
||||
List<WebSocketExtension> result = new ArrayList<>();
|
||||
for (String token : StringUtils.tokenizeToStringArray(extensions, ",")) {
|
||||
if (StringUtils.hasText(extensions)) {
|
||||
String[] tokens = StringUtils.tokenizeToStringArray(extensions, ",");
|
||||
List<WebSocketExtension> result = new ArrayList<WebSocketExtension>(tokens.length);
|
||||
for (String token : tokens) {
|
||||
result.add(parseExtension(token));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
else {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
|
||||
private static WebSocketExtension parseExtension(String extension) {
|
||||
|
|
Loading…
Reference in New Issue