diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java b/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java index ae35dd2dd6..ffe461fdb0 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/CglibAopProxy.java @@ -922,7 +922,7 @@ class CglibAopProxy implements AopProxy, Serializable { if (aa == null || ba == null) { return (aa == ba); } - return aa.getClass().equals(ba.getClass()); + return (aa.getClass() == ba.getClass()); } private boolean equalsPointcuts(Advisor a, Advisor b) { diff --git a/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java b/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java index 56f618171c..3d0e9ae4f5 100644 --- a/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java +++ b/spring-aop/src/main/java/org/springframework/aop/target/AbstractBeanFactoryBasedTargetSource.java @@ -165,7 +165,7 @@ public abstract class AbstractBeanFactoryBasedTargetSource implements TargetSour if (this == other) { return true; } - if (other == null || !getClass().equals(other.getClass())) { + if (other == null || getClass() != other.getClass()) { return false; } AbstractBeanFactoryBasedTargetSource otherTargetSource = (AbstractBeanFactoryBasedTargetSource) other; diff --git a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java index dca277179f..12b304666c 100644 --- a/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/AbstractNestablePropertyAccessor.java @@ -203,7 +203,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA */ public void setWrappedInstance(Object object, String nestedPath, Object rootObject) { Assert.notNull(object, "Target object must not be null"); - if (object.getClass().equals(javaUtilOptionalClass)) { + if (object.getClass() == javaUtilOptionalClass) { this.object = OptionalUnwrapper.unwrap(object); } else { @@ -834,7 +834,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA PropertyTokenHolder tokens = getPropertyNameTokens(nestedProperty); String canonicalName = tokens.canonicalName; Object value = getPropertyValue(tokens); - if (value == null || (value.getClass().equals(javaUtilOptionalClass) && OptionalUnwrapper.isEmpty(value))) { + if (value == null || (value.getClass() == javaUtilOptionalClass && OptionalUnwrapper.isEmpty(value))) { if (isAutoGrowNestedPaths()) { value = setDefaultValue(tokens); } @@ -846,7 +846,7 @@ public abstract class AbstractNestablePropertyAccessor extends AbstractPropertyA // Lookup cached sub-PropertyAccessor, create new one if not found. AbstractNestablePropertyAccessor nestedPa = this.nestedPropertyAccessors.get(canonicalName); if (nestedPa == null || nestedPa.getWrappedInstance() != - (value.getClass().equals(javaUtilOptionalClass) ? OptionalUnwrapper.unwrap(value) : value)) { + (value.getClass() == javaUtilOptionalClass ? OptionalUnwrapper.unwrap(value) : value)) { if (logger.isTraceEnabled()) { logger.trace("Creating new nested " + getClass().getSimpleName() + " for property '" + canonicalName + "'"); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InjectionMetadata.java b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InjectionMetadata.java index 9cb34e62ee..af64331ce9 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InjectionMetadata.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/InjectionMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -105,7 +105,7 @@ public class InjectionMetadata { public static boolean needsRefresh(InjectionMetadata metadata, Class clazz) { - return (metadata == null || !metadata.targetClass.equals(clazz)); + return (metadata == null || metadata.targetClass != clazz); } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java b/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java index 4cf1bea9dc..41653c8453 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy.java @@ -174,7 +174,7 @@ public class CglibSubclassingInstantiationStrategy extends SimpleInstantiationSt @Override public boolean equals(Object other) { - return (getClass().equals(other.getClass()) && + return (getClass() == other.getClass() && this.beanDefinition.equals(((CglibIdentitySupport) other).beanDefinition)); } diff --git a/spring-context/src/main/java/org/springframework/validation/DataBinder.java b/spring-context/src/main/java/org/springframework/validation/DataBinder.java index abbbe02a29..b80bce63cf 100644 --- a/spring-context/src/main/java/org/springframework/validation/DataBinder.java +++ b/spring-context/src/main/java/org/springframework/validation/DataBinder.java @@ -184,7 +184,7 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter { * @param objectName the name of the target object */ public DataBinder(Object target, String objectName) { - if (target != null && target.getClass().equals(javaUtilOptionalClass)) { + if (target != null && target.getClass() == javaUtilOptionalClass) { this.target = OptionalUnwrapper.unwrap(target); } else { diff --git a/spring-context/src/main/java/org/springframework/validation/ObjectError.java b/spring-context/src/main/java/org/springframework/validation/ObjectError.java index ccfab2f926..00b451634b 100644 --- a/spring-context/src/main/java/org/springframework/validation/ObjectError.java +++ b/spring-context/src/main/java/org/springframework/validation/ObjectError.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -78,7 +78,7 @@ public class ObjectError extends DefaultMessageSourceResolvable { if (this == other) { return true; } - if (!(getClass().equals(other.getClass())) || !super.equals(other)) { + if (getClass() != other.getClass() || !super.equals(other)) { return false; } ObjectError otherError = (ObjectError) other; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java index 0db8050f27..fa1500d7f6 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java @@ -376,7 +376,7 @@ public class MethodReference extends SpelNodeImpl { } public boolean isSuitable(Object value, TypeDescriptor target, List argumentTypes) { - return ((this.staticClass == null || this.staticClass.equals(value)) && + return ((this.staticClass == null || this.staticClass == value) && this.target.equals(target) && this.argumentTypes.equals(argumentTypes)); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java index b388688be3..88baff51d8 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/BeanPropertyRowMapper.java @@ -131,7 +131,7 @@ public class BeanPropertyRowMapper implements RowMapper { initialize(mappedClass); } else { - if (!this.mappedClass.equals(mappedClass)) { + if (this.mappedClass != mappedClass) { throw new InvalidDataAccessApiUsageException("The mapped class can not be reassigned to map to " + mappedClass + " since it is already providing mapping for " + this.mappedClass); } diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java index 3d7e0fb5f1..288ab5afc1 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java @@ -276,7 +276,7 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if (method.getName().equals("send") && args != null && - completionListenerClass.equals(method.getParameterTypes()[args.length - 1])) { + completionListenerClass == method.getParameterTypes()[args.length - 1]) { switch (args.length) { case 2: // send(message, completionListener) return sendWithCompletionListenerMethod.invoke( diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java index 2708e0d772..f3ec7beef9 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java @@ -528,7 +528,7 @@ public class CachingConnectionFactory extends SingleConnectionFactory { } protected boolean destinationEquals(DestinationCacheKey otherKey) { - return (this.destination.getClass().equals(otherKey.destination.getClass()) && + return (this.destination.getClass() == otherKey.destination.getClass() && (this.destination.equals(otherKey.destination) || getDestinationString().equals(otherKey.getDestinationString()))); } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java index 3e6e1dd76c..c681f6b4ae 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/AbstractMessageCondition.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,19 +28,12 @@ import java.util.Iterator; */ public abstract class AbstractMessageCondition> implements MessageCondition { - /** - * @return the collection of objects the message condition is composed of - * .g. destination patterns), never {@code null} - */ - protected abstract Collection getContent(); - - @Override public boolean equals(Object obj) { if (this == obj) { return true; } - if (obj != null && getClass().equals(obj.getClass())) { + if (obj != null && getClass() == obj.getClass()) { AbstractMessageCondition other = (AbstractMessageCondition) obj; return getContent().equals(other.getContent()); } @@ -66,6 +59,13 @@ public abstract class AbstractMessageCondition getContent(); + /** * The notation to use when printing discrete items of content. * For example " || " for URL patterns or " && " for param expressions. diff --git a/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java index 860d79125e..4815b8c395 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/jibx/JibxMarshaller.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -236,9 +236,9 @@ public class JibxMarshaller extends AbstractMarshaller implements InitializingBe @Override public boolean supports(Class clazz) { - Assert.notNull(clazz, "'clazz' must not be null"); + Assert.notNull(clazz, "Class must not be null"); if (this.targetClass != null) { - return this.targetClass.equals(clazz); + return (this.targetClass == clazz); } String[] mappedClasses = this.bindingFactory.getMappedClasses(); String className = clazz.getName(); diff --git a/spring-test/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java b/spring-test/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java index f0221f59c4..7c7b6115ed 100644 --- a/spring-test/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java +++ b/spring-test/src/main/java/org/springframework/test/web/client/MockMvcClientHttpRequestFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.test.web.client; import java.io.IOException; @@ -52,7 +53,6 @@ public class MockMvcClientHttpRequestFactory implements ClientHttpRequestFactory @Override public ClientHttpRequest createRequest(final URI uri, final HttpMethod httpMethod) throws IOException { return new MockClientHttpRequest(httpMethod, uri) { - @Override public ClientHttpResponse executeInternal() throws IOException { try { diff --git a/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcher.java b/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcher.java index e59d48b5f2..bc169f4881 100644 --- a/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcher.java +++ b/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcher.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.test.web.client; import java.io.IOException; @@ -29,7 +30,6 @@ public interface RequestMatcher { /** * Match the given request against some expectations. - * * @param request the request to make assertions on * @throws IOException in case of I/O errors * @throws AssertionError if expectations are not met diff --git a/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java b/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java index 62fe91c25d..1a01328bdd 100644 --- a/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java +++ b/spring-test/src/main/java/org/springframework/test/web/client/RequestMatcherClientHttpRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,6 +46,7 @@ class RequestMatcherClientHttpRequest extends MockAsyncClientHttpRequest impleme this.requestMatchers.add(requestMatcher); } + @Override public ResponseActions andExpect(RequestMatcher requestMatcher) { Assert.notNull(requestMatcher, "RequestMatcher is required"); @@ -61,22 +62,19 @@ class RequestMatcherClientHttpRequest extends MockAsyncClientHttpRequest impleme @Override public ClientHttpResponse executeInternal() throws IOException { - if (this.requestMatchers.isEmpty()) { throw new AssertionError("No request expectations to execute"); } if (this.responseCreator == null) { - throw new AssertionError("No ResponseCreator was set up. Add it after request expectations, " - + "e.g. MockRestServiceServer.expect(requestTo(\"/foo\")).andRespond(withSuccess())"); + throw new AssertionError("No ResponseCreator was set up. Add it after request expectations, " + + "e.g. MockRestServiceServer.expect(requestTo(\"/foo\")).andRespond(withSuccess())"); } for (RequestMatcher requestMatcher : this.requestMatchers) { requestMatcher.match(this); } - setResponse(this.responseCreator.createResponse(this)); - return super.executeInternal(); } diff --git a/spring-test/src/main/java/org/springframework/test/web/client/ResponseActions.java b/spring-test/src/main/java/org/springframework/test/web/client/ResponseActions.java index 500e1574b1..440202fb01 100644 --- a/spring-test/src/main/java/org/springframework/test/web/client/ResponseActions.java +++ b/spring-test/src/main/java/org/springframework/test/web/client/ResponseActions.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.test.web.client; /** diff --git a/spring-test/src/main/java/org/springframework/test/web/client/ResponseCreator.java b/spring-test/src/main/java/org/springframework/test/web/client/ResponseCreator.java index 6fc6158652..d7703bc95a 100644 --- a/spring-test/src/main/java/org/springframework/test/web/client/ResponseCreator.java +++ b/spring-test/src/main/java/org/springframework/test/web/client/ResponseCreator.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.test.web.client; import java.io.IOException; diff --git a/spring-web/src/main/java/org/springframework/http/HttpEntity.java b/spring-web/src/main/java/org/springframework/http/HttpEntity.java index d9697697f0..b866c0bf4c 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpEntity.java +++ b/spring-web/src/main/java/org/springframework/http/HttpEntity.java @@ -131,7 +131,7 @@ public class HttpEntity { if (this == other) { return true; } - if (other == null || !other.getClass().equals(getClass())) { + if (other == null || other.getClass() != getClass()) { return false; } HttpEntity otherEntity = (HttpEntity) other; diff --git a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java index 4022c4dc73..c8204ab45a 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,7 +23,8 @@ import org.springframework.http.HttpMethod; import org.springframework.util.Assert; /** - * Abstract base class for {@link ClientHttpRequestFactory} implementations that decorate another request factory. + * Abstract base class for {@link ClientHttpRequestFactory} implementations + * that decorate another request factory. * * @author Arjen Poutsma * @since 3.1 @@ -34,11 +35,11 @@ public abstract class AbstractClientHttpRequestFactoryWrapper implements ClientH /** - * Creates a {@code AbstractClientHttpRequestFactoryWrapper} wrapping the given request factory. + * Create a {@code AbstractClientHttpRequestFactoryWrapper} wrapping the given request factory. * @param requestFactory the request factory to be wrapped */ protected AbstractClientHttpRequestFactoryWrapper(ClientHttpRequestFactory requestFactory) { - Assert.notNull(requestFactory, "'requestFactory' must not be null"); + Assert.notNull(requestFactory, "ClientHttpRequestFactory must not be null"); this.requestFactory = requestFactory; } @@ -50,12 +51,12 @@ public abstract class AbstractClientHttpRequestFactoryWrapper implements ClientH */ @Override public final ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { - return createRequest(uri, httpMethod, requestFactory); + return createRequest(uri, httpMethod, this.requestFactory); } /** - * Create a new {@link ClientHttpRequest} for the specified URI and HTTP method by using the - * passed-on request factory. + * Create a new {@link ClientHttpRequest} for the specified URI and HTTP method + * by using the passed-on request factory. *

Called from {@link #createRequest(URI, HttpMethod)}. * @param uri the URI to create a request for * @param httpMethod the HTTP method to execute diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java index a2665eaa8f..53f6faf0bf 100644 --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java @@ -190,12 +190,14 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { HttpClient client = getHttpClient(); Assert.state(client != null, "Synchronous execution requires an HttpClient to be set"); + HttpUriRequest httpRequest = createHttpUriRequest(httpMethod, uri); postProcessHttpRequest(httpRequest); HttpContext context = createHttpContext(httpMethod, uri); if (context == null) { context = HttpClientContext.create(); } + // Request configuration not set in the context if (context.getAttribute(HttpClientContext.REQUEST_CONFIG) == null) { // Use request configuration given by the user, when available @@ -210,6 +212,7 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest context.setAttribute(HttpClientContext.REQUEST_CONFIG, config); } } + if (this.bufferRequestBody) { return new HttpComponentsClientHttpRequest(client, httpRequest, context); } @@ -285,20 +288,20 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest switch (httpMethod) { case GET: return new HttpGet(uri); - case DELETE: - return new HttpDelete(uri); case HEAD: return new HttpHead(uri); - case OPTIONS: - return new HttpOptions(uri); case POST: return new HttpPost(uri); case PUT: return new HttpPut(uri); - case TRACE: - return new HttpTrace(uri); case PATCH: return new HttpPatch(uri); + case DELETE: + return new HttpDelete(uri); + case OPTIONS: + return new HttpOptions(uri); + case TRACE: + return new HttpTrace(uri); default: throw new IllegalArgumentException("Invalid HTTP method: " + httpMethod); } diff --git a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java index b02658a62f..9a33b31a0c 100644 --- a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,52 +42,51 @@ class InterceptingClientHttpRequest extends AbstractBufferingClientHttpRequest { private URI uri; + protected InterceptingClientHttpRequest(ClientHttpRequestFactory requestFactory, - List interceptors, - URI uri, - HttpMethod method) { + List interceptors, URI uri, HttpMethod method) { + this.requestFactory = requestFactory; this.interceptors = interceptors; this.method = method; this.uri = uri; } + @Override public HttpMethod getMethod() { - return method; + return this.method; } @Override public URI getURI() { - return uri; + return this.uri; } @Override protected final ClientHttpResponse executeInternal(HttpHeaders headers, byte[] bufferedOutput) throws IOException { - RequestExecution requestExecution = new RequestExecution(); - + InterceptingRequestExecution requestExecution = new InterceptingRequestExecution(); return requestExecution.execute(this, bufferedOutput); } - private class RequestExecution implements ClientHttpRequestExecution { + + private class InterceptingRequestExecution implements ClientHttpRequestExecution { private final Iterator iterator; - private RequestExecution() { + public InterceptingRequestExecution() { this.iterator = interceptors.iterator(); } @Override public ClientHttpResponse execute(HttpRequest request, byte[] body) throws IOException { - if (iterator.hasNext()) { - ClientHttpRequestInterceptor nextInterceptor = iterator.next(); + if (this.iterator.hasNext()) { + ClientHttpRequestInterceptor nextInterceptor = this.iterator.next(); return nextInterceptor.intercept(request, body, this); } else { ClientHttpRequest delegate = requestFactory.createRequest(request.getURI(), request.getMethod()); - delegate.getHeaders().putAll(request.getHeaders()); - if (body.length > 0) { StreamUtils.copy(body, delegate.getBody()); } diff --git a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequestFactory.java index 6e797c2bb1..aadab06951 100644 --- a/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/InterceptingClientHttpRequestFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2011 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,20 +32,22 @@ public class InterceptingClientHttpRequestFactory extends AbstractClientHttpRequ private final List interceptors; + /** - * Creates a new instance of the {@code InterceptingClientHttpRequestFactory} with the given parameters. - * + * Create a new instance of the {@code InterceptingClientHttpRequestFactory} with the given parameters. * @param requestFactory the request factory to wrap - * @param interceptors the interceptors that are to be applied. Can be {@code null}. + * @param interceptors the interceptors that are to be applied (can be {@code null}) */ public InterceptingClientHttpRequestFactory(ClientHttpRequestFactory requestFactory, List interceptors) { + super(requestFactory); - this.interceptors = interceptors != null ? interceptors : Collections.emptyList(); + this.interceptors = (interceptors != null ? interceptors : Collections.emptyList()); } @Override protected ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod, ClientHttpRequestFactory requestFactory) { - return new InterceptingClientHttpRequest(requestFactory, interceptors, uri, httpMethod); + return new InterceptingClientHttpRequest(requestFactory, this.interceptors, uri, httpMethod); } + } diff --git a/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java index 455fd59b90..2f8f0d1eb9 100644 --- a/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java @@ -39,7 +39,6 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.http.HttpMethod; import org.springframework.util.Assert; - /** * {@link org.springframework.http.client.ClientHttpRequestFactory} implementation that * uses Netty 4 to create requests. @@ -69,12 +68,12 @@ public class Netty4ClientHttpRequestFactory implements ClientHttpRequestFactory, private SslContext sslContext; - private volatile Bootstrap bootstrap; - private int connectTimeout = -1; private int readTimeout = -1; + private volatile Bootstrap bootstrap; + /** * Create a new {@code Netty4ClientHttpRequestFactory} with a default diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java index e2dcb02563..076e7b37ed 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -136,6 +136,7 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory, public ClientHttpRequest createRequest(URI uri, HttpMethod httpMethod) throws IOException { HttpURLConnection connection = openConnection(uri.toURL(), this.proxy); prepareConnection(connection, httpMethod.name()); + if (this.bufferRequestBody) { return new SimpleBufferingClientHttpRequest(connection, this.outputStreaming); } @@ -146,20 +147,23 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory, /** * {@inheritDoc} - *

Setting the {@link #setTaskExecutor(org.springframework.core.task.AsyncListenableTaskExecutor) taskExecutor} property - * is required before calling this method. + *

Setting the {@link #setTaskExecutor taskExecutor} property is required before calling this method. */ @Override public AsyncClientHttpRequest createAsyncRequest(URI uri, HttpMethod httpMethod) throws IOException { - Assert.state(this.taskExecutor != null, "Asynchronous execution requires an AsyncTaskExecutor to be set"); + Assert.state(this.taskExecutor != null, + "Asynchronous execution requires an AsyncTaskExecutor to be set"); + HttpURLConnection connection = openConnection(uri.toURL(), this.proxy); prepareConnection(connection, httpMethod.name()); + if (this.bufferRequestBody) { - return new SimpleBufferingAsyncClientHttpRequest(connection, this.outputStreaming, this.taskExecutor); + return new SimpleBufferingAsyncClientHttpRequest( + connection, this.outputStreaming, this.taskExecutor); } else { - return new SimpleStreamingAsyncClientHttpRequest(connection, this.chunkSize, - this.outputStreaming, this.taskExecutor); + return new SimpleStreamingAsyncClientHttpRequest( + connection, this.chunkSize, this.outputStreaming, this.taskExecutor); } } @@ -192,20 +196,24 @@ public class SimpleClientHttpRequestFactory implements ClientHttpRequestFactory, if (this.readTimeout >= 0) { connection.setReadTimeout(this.readTimeout); } + connection.setDoInput(true); + if ("GET".equals(httpMethod)) { connection.setInstanceFollowRedirects(true); } else { connection.setInstanceFollowRedirects(false); } - if ("PUT".equals(httpMethod) || "POST".equals(httpMethod) || + + if ("POST".equals(httpMethod) || "PUT".equals(httpMethod) || "PATCH".equals(httpMethod) || "DELETE".equals(httpMethod)) { connection.setDoOutput(true); } else { connection.setDoOutput(false); } + connection.setRequestMethod(httpMethod); } diff --git a/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java b/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java index d66476d914..c17f3671d1 100644 --- a/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,8 +24,10 @@ import org.springframework.http.HttpRequest; import org.springframework.util.Assert; /** - * Provides a convenient implementation of the {@link HttpRequest} interface that can be overridden to adapt the - * request. Methods default to calling through to the wrapped request object. + * Provides a convenient implementation of the {@link HttpRequest} interface + * that can be overridden to adapt the request. + * + *

These methods default to calling through to the wrapped request object. * * @author Arjen Poutsma * @since 3.1 @@ -36,24 +38,24 @@ public class HttpRequestWrapper implements HttpRequest { /** - * Creates a new {@code HttpRequest} wrapping the given request object. - * + * Create a new {@code HttpRequest} wrapping the given request object. * @param request the request object to be wrapped */ public HttpRequestWrapper(HttpRequest request) { - Assert.notNull(request, "'request' must not be null"); + Assert.notNull(request, "HttpRequest must not be null"); this.request = request; } + /** - * Returns the wrapped request. + * Return the wrapped request. */ public HttpRequest getRequest() { - return request; + return this.request; } /** - * Returns the method of the wrapped request. + * Return the method of the wrapped request. */ @Override public HttpMethod getMethod() { @@ -61,7 +63,7 @@ public class HttpRequestWrapper implements HttpRequest { } /** - * Returns the URI of the wrapped request. + * Return the URI of the wrapped request. */ @Override public URI getURI() { @@ -69,7 +71,7 @@ public class HttpRequestWrapper implements HttpRequest { } /** - * Returns the headers of the wrapped request. + * Return the headers of the wrapped request. */ @Override public HttpHeaders getHeaders() { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java index 9203d7523b..e6708f279d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,36 +41,39 @@ abstract class AbstractMediaTypeExpression implements Comparable other = (AbstractRequestCondition) obj; return getContent().equals(other.getContent()); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/PathResourceResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/PathResourceResolver.java index fc964907c7..2119b7a7a0 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/PathResourceResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/PathResourceResolver.java @@ -158,7 +158,7 @@ public class PathResourceResolver extends AbstractResourceResolver { } private boolean isResourceUnderLocation(Resource resource, Resource location) throws IOException { - if (!resource.getClass().equals(location.getClass())) { + if (resource.getClass() != location.getClass()) { return false; }