mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-10-01 03:39:05 +00:00
Polish code base
- Remove redundant super() calls from constructors - Add missing @Override annotations - Use switch rules in JdkClientHttpRequest and RfcUriParser - Use instanceof pattern matching - Use method references instead of trivial lambda expressions - Use lambda expressions instead of anonymous inner classes - Remove unused code and redundant semicolons - Use braces with if-blocks
This commit is contained in:
@@ -125,6 +125,7 @@ class AopUtilsTests {
|
||||
|
||||
static class WithInterface implements ProxyInterface {
|
||||
|
||||
@Override
|
||||
public void handle(List<String> list) {
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -171,7 +171,6 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac
|
||||
* Create a new AbstractAutowireCapableBeanFactory.
|
||||
*/
|
||||
public AbstractAutowireCapableBeanFactory() {
|
||||
super();
|
||||
ignoreDependencyInterface(BeanNameAware.class);
|
||||
ignoreDependencyInterface(BeanFactoryAware.class);
|
||||
ignoreDependencyInterface(BeanClassLoaderAware.class);
|
||||
|
||||
-1
@@ -60,7 +60,6 @@ public class ChildBeanDefinition extends AbstractBeanDefinition {
|
||||
* @see #setPropertyValues
|
||||
*/
|
||||
public ChildBeanDefinition(String parentName) {
|
||||
super();
|
||||
this.parentName = parentName;
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -225,7 +225,6 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
|
||||
* Create a new DefaultListableBeanFactory.
|
||||
*/
|
||||
public DefaultListableBeanFactory() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -399,6 +398,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
|
||||
return getBeanProvider(requiredType, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> ObjectProvider<T> getBeanProvider(ParameterizedTypeReference<T> requiredType) {
|
||||
return getBeanProvider(ResolvableType.forType(requiredType), true);
|
||||
}
|
||||
|
||||
-1
@@ -56,7 +56,6 @@ GenericBeanDefinition extends AbstractBeanDefinition {
|
||||
* @see #setPropertyValues
|
||||
*/
|
||||
public GenericBeanDefinition() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1069,7 +1069,6 @@ class BeanUtilsTests {
|
||||
private String address;
|
||||
|
||||
public User() {
|
||||
super();
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
|
||||
-2
@@ -927,11 +927,9 @@ class BeanFactoryGenericsTests {
|
||||
public static class UrlSet extends HashSet<URL> {
|
||||
|
||||
public UrlSet() {
|
||||
super();
|
||||
}
|
||||
|
||||
public UrlSet(Set<? extends URL> urls) {
|
||||
super();
|
||||
}
|
||||
|
||||
public void setUrlNames(Set<URI> urlNames) throws MalformedURLException {
|
||||
|
||||
+1
@@ -47,6 +47,7 @@ public class MockBeanFactoryInitializationCode implements BeanFactoryInitializat
|
||||
.addForFeature("TestCode", this.typeBuilder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ClassName getClassName() {
|
||||
return this.generatedClass.getName();
|
||||
}
|
||||
|
||||
+1
@@ -137,6 +137,7 @@ class JCacheCustomInterceptorTests {
|
||||
|
||||
CacheInterceptorBeanPostProcessor(BeanFactory beanFactory) {this.beanFactory = beanFactory;}
|
||||
|
||||
@Override
|
||||
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
|
||||
if (beanName.equals("jCacheInterceptor")) {
|
||||
JCacheInterceptor cacheInterceptor = new TestCacheInterceptor();
|
||||
|
||||
-1
@@ -69,7 +69,6 @@ class CacheOperationExpressionEvaluator extends CachedExpressionEvaluator {
|
||||
private final CacheEvaluationContextFactory evaluationContextFactory;
|
||||
|
||||
public CacheOperationExpressionEvaluator(CacheEvaluationContextFactory evaluationContextFactory) {
|
||||
super();
|
||||
this.evaluationContextFactory = evaluationContextFactory;
|
||||
this.evaluationContextFactory.setParameterNameDiscoverer(this::getParameterNameDiscoverer);
|
||||
}
|
||||
|
||||
@@ -51,7 +51,6 @@ public class SpringModelMBean extends RequiredModelMBean {
|
||||
* @see javax.management.modelmbean.RequiredModelMBean#RequiredModelMBean()
|
||||
*/
|
||||
public SpringModelMBean() throws MBeanException, RuntimeOperationsException {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
@@ -66,6 +66,7 @@ public class MethodRetryEvent extends MethodFailureEvent {
|
||||
* @see reactor.core.Exceptions#isRetryExhausted
|
||||
* @see java.util.concurrent.TimeoutException
|
||||
*/
|
||||
@Override
|
||||
public Throwable getFailure() {
|
||||
return super.getFailure();
|
||||
}
|
||||
|
||||
-1
@@ -108,7 +108,6 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T
|
||||
*/
|
||||
@Deprecated(since = "6.1")
|
||||
public ConcurrentTaskScheduler() {
|
||||
super();
|
||||
this.scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
|
||||
this.enterpriseConcurrentScheduler = false;
|
||||
}
|
||||
|
||||
-1
@@ -39,7 +39,6 @@ public class CustomizableThreadFactory extends CustomizableThreadCreator impleme
|
||||
* Create a new CustomizableThreadFactory with default thread name prefix.
|
||||
*/
|
||||
public CustomizableThreadFactory() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
@@ -115,6 +115,7 @@ class CustomInterceptorTests {
|
||||
|
||||
CacheInterceptorBeanPostProcessor(BeanFactory beanFactory) {this.beanFactory = beanFactory;}
|
||||
|
||||
@Override
|
||||
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
|
||||
if (beanName.equals("cacheInterceptor")) {
|
||||
CacheInterceptor cacheInterceptor = new TestCacheInterceptor();
|
||||
|
||||
+1
@@ -214,6 +214,7 @@ class ConfigurationClassEnhancerTests {
|
||||
super(parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
|
||||
if (name.contains("MyConfig")) {
|
||||
String path = name.replace('.', '/').concat(".class");
|
||||
|
||||
+1
@@ -169,6 +169,7 @@ class ApplicationContextLifecycleTests {
|
||||
|
||||
private static class FailingContextRefreshedListener implements ApplicationListener<ContextRefreshedEvent> {
|
||||
|
||||
@Override
|
||||
public void onApplicationEvent(ContextRefreshedEvent event) {
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
+1
-1
@@ -48,7 +48,7 @@ public class PropertiesPropertySource extends MapPropertySource {
|
||||
@Override
|
||||
public String[] getPropertyNames() {
|
||||
synchronized (this.source) {
|
||||
return ((Map<?, ?>) this.source).keySet().stream().filter(k -> k instanceof String).toArray(String[]::new);
|
||||
return ((Map<?, ?>) this.source).keySet().stream().filter(String.class::isInstance).toArray(String[]::new);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,6 @@ public class EncodedResource implements InputStreamSource {
|
||||
}
|
||||
|
||||
private EncodedResource(Resource resource, @Nullable String encoding, @Nullable Charset charset) {
|
||||
super();
|
||||
Assert.notNull(resource, "Resource must not be null");
|
||||
this.resource = resource;
|
||||
this.encoding = encoding;
|
||||
|
||||
@@ -105,7 +105,6 @@ public class SimpleAsyncTaskExecutor extends CustomizableThreadCreator
|
||||
* Create a new SimpleAsyncTaskExecutor with default thread name prefix.
|
||||
*/
|
||||
public SimpleAsyncTaskExecutor() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
-1
@@ -36,7 +36,6 @@ public class SimpleMetadataReaderFactory extends AbstractMetadataReaderFactory {
|
||||
* Create a new SimpleMetadataReaderFactory for the default class loader.
|
||||
*/
|
||||
public SimpleMetadataReaderFactory() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -547,11 +547,9 @@ public class MimeType implements Comparable<MimeType>, Serializable {
|
||||
thisAttributes.addAll(getParameters().keySet());
|
||||
TreeSet<String> otherAttributes = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
|
||||
otherAttributes.addAll(other.getParameters().keySet());
|
||||
Iterator<String> thisAttributesIterator = thisAttributes.iterator();
|
||||
Iterator<String> otherAttributesIterator = otherAttributes.iterator();
|
||||
|
||||
while (thisAttributesIterator.hasNext()) {
|
||||
String thisAttribute = thisAttributesIterator.next();
|
||||
for (String thisAttribute : thisAttributes) {
|
||||
String otherAttribute = otherAttributesIterator.next();
|
||||
comp = thisAttribute.compareToIgnoreCase(otherAttribute);
|
||||
if (comp != 0) {
|
||||
|
||||
+2
-2
@@ -587,12 +587,12 @@ class GenericConversionServiceTests {
|
||||
List<?> aList = (List<?>) conversionService.convert(List.of("foo"),
|
||||
TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(String.class)),
|
||||
TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(ARaw.class)));
|
||||
assertThat(aList).allMatch(e -> e instanceof ARaw);
|
||||
assertThat(aList).allMatch(ARaw.class::isInstance);
|
||||
|
||||
List<?> bList = (List<?>) conversionService.convert(List.of("foo"),
|
||||
TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(String.class)),
|
||||
TypeDescriptor.collection(List.class, TypeDescriptor.valueOf(BRaw.class)));
|
||||
assertThat(bList).allMatch(e -> e instanceof BRaw);
|
||||
assertThat(bList).allMatch(BRaw.class::isInstance);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
-1
@@ -721,7 +721,6 @@ class ConcurrentReferenceHashMapTests {
|
||||
private final LinkedList<MockReference<K, V>> queue = new LinkedList<>();
|
||||
|
||||
public TestWeakConcurrentCache() {
|
||||
super();
|
||||
}
|
||||
|
||||
public TestWeakConcurrentCache(int initialCapacity, float loadFactor, int concurrencyLevel) {
|
||||
|
||||
+1
-1
@@ -146,7 +146,7 @@ public class LeakAwareDataBufferFactory implements DataBufferFactory {
|
||||
public DataBuffer join(List<? extends DataBuffer> dataBuffers) {
|
||||
// Remove LeakAwareDataBuffer wrapper so delegate can find native buffers
|
||||
dataBuffers = dataBuffers.stream()
|
||||
.map(o -> o instanceof LeakAwareDataBuffer ? ((LeakAwareDataBuffer) o).dataBuffer() : o)
|
||||
.map(o -> o instanceof LeakAwareDataBuffer leakAwareBuffer ? leakAwareBuffer.dataBuffer() : o)
|
||||
.toList();
|
||||
return new LeakAwareDataBuffer(this.delegate.join(dataBuffers), this);
|
||||
}
|
||||
|
||||
-1
@@ -43,7 +43,6 @@ import org.springframework.expression.MethodExecutor;
|
||||
public final class DataBindingMethodResolver extends ReflectiveMethodResolver {
|
||||
|
||||
private DataBindingMethodResolver() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -68,7 +68,6 @@ public class BatchSqlUpdate extends SqlUpdate {
|
||||
* @see #setSql
|
||||
*/
|
||||
public BatchSqlUpdate() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,7 +64,6 @@ public class JdbcTransactionManager extends DataSourceTransactionManager {
|
||||
* @see #setDataSource
|
||||
*/
|
||||
public JdbcTransactionManager() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+3
-3
@@ -375,7 +375,7 @@ public class DataSourceTransactionManagerTests {
|
||||
|
||||
tt.executeWithoutResult(status -> {
|
||||
assertThat(status.isRollbackOnly()).isFalse();
|
||||
tt2.executeWithoutResult(status2 -> status2.setRollbackOnly());
|
||||
tt2.executeWithoutResult(TransactionStatus::setRollbackOnly);
|
||||
assertThat(status.isRollbackOnly()).isTrue();
|
||||
});
|
||||
});
|
||||
@@ -401,7 +401,7 @@ public class DataSourceTransactionManagerTests {
|
||||
|
||||
tt.executeWithoutResult(status -> {
|
||||
assertThat(status.isRollbackOnly()).isFalse();
|
||||
tt2.executeWithoutResult(status2 -> status2.setRollbackOnly());
|
||||
tt2.executeWithoutResult(TransactionStatus::setRollbackOnly);
|
||||
assertThat(status.isRollbackOnly()).isTrue();
|
||||
});
|
||||
});
|
||||
@@ -621,7 +621,7 @@ public class DataSourceTransactionManagerTests {
|
||||
assertThat(status.isReadOnly()).isFalse();
|
||||
assertThat(TransactionSynchronizationManager.isCurrentTransactionReadOnly()).isFalse();
|
||||
assertThat(TransactionSynchronizationManager.isActualTransactionActive()).isTrue();
|
||||
tt2.executeWithoutResult(status2 -> status2.setRollbackOnly());
|
||||
tt2.executeWithoutResult(TransactionStatus::setRollbackOnly);
|
||||
})).withCause(failure);
|
||||
|
||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).isFalse();
|
||||
|
||||
@@ -199,7 +199,7 @@ class SqlUpdateTests {
|
||||
verify(preparedStatement).setObject(1, 1, Types.NUMERIC);
|
||||
verify(preparedStatement).setObject(2, 1, Types.NUMERIC, 2);
|
||||
verify(preparedStatement).setString(3, "rod");
|
||||
verify(preparedStatement).setBoolean(4, Boolean.TRUE);
|
||||
verify(preparedStatement).setBoolean(4, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -237,7 +237,7 @@ class SqlUpdateTests {
|
||||
verify(preparedStatement).setObject(1, 1, Types.NUMERIC);
|
||||
verify(preparedStatement).setObject(2, 1, Types.NUMERIC);
|
||||
verify(preparedStatement).setString(3, "rod");
|
||||
verify(preparedStatement).setBoolean(4, Boolean.TRUE);
|
||||
verify(preparedStatement).setBoolean(4, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
+2
-1
@@ -25,6 +25,7 @@ import org.mockito.InOrder;
|
||||
|
||||
import org.springframework.dao.ConcurrencyFailureException;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManagerTests;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
import org.springframework.transaction.TransactionSystemException;
|
||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||
import org.springframework.transaction.support.TransactionTemplate;
|
||||
@@ -154,7 +155,7 @@ class JdbcTransactionManagerTests extends DataSourceTransactionManagerTests {
|
||||
|
||||
// specific ConcurrencyFailureException
|
||||
assertThatExceptionOfType(ConcurrencyFailureException.class).isThrownBy(() ->
|
||||
tt.executeWithoutResult(status -> status.setRollbackOnly()));
|
||||
tt.executeWithoutResult(TransactionStatus::setRollbackOnly));
|
||||
|
||||
assertThat(TransactionSynchronizationManager.hasResource(ds)).isFalse();
|
||||
InOrder ordered = inOrder(con);
|
||||
|
||||
-1
@@ -114,7 +114,6 @@ public class CachingConnectionFactory extends SingleConnectionFactory {
|
||||
* @see #setTargetConnectionFactory
|
||||
*/
|
||||
public CachingConnectionFactory() {
|
||||
super();
|
||||
setReconnectOnException(true);
|
||||
}
|
||||
|
||||
|
||||
+6
-13
@@ -24,7 +24,6 @@ import jakarta.jms.Destination;
|
||||
import jakarta.jms.JMSException;
|
||||
import jakarta.jms.Message;
|
||||
import jakarta.jms.MessageConsumer;
|
||||
import jakarta.jms.Session;
|
||||
import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
|
||||
import org.apache.activemq.artemis.junit.EmbeddedActiveMQExtension;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
@@ -99,12 +98,9 @@ class JmsTemplateObservationTests {
|
||||
mc.setMessageListener(message -> {
|
||||
try {
|
||||
Destination jmsReplyTo = message.getJMSReplyTo();
|
||||
jmsTemplate.send(jmsReplyTo, new MessageCreator() {
|
||||
@Override
|
||||
public Message createMessage(Session session) throws JMSException {
|
||||
latch.countDown();
|
||||
return session.createTextMessage("response content");
|
||||
}
|
||||
jmsTemplate.send(jmsReplyTo, (MessageCreator) replySession -> {
|
||||
latch.countDown();
|
||||
return replySession.createTextMessage("response content");
|
||||
});
|
||||
}
|
||||
catch (JMSException e) {
|
||||
@@ -119,12 +115,9 @@ class JmsTemplateObservationTests {
|
||||
}, true);
|
||||
|
||||
}).start();
|
||||
Message response = jmsTemplate.sendAndReceive("spring.test.observation", new MessageCreator() {
|
||||
@Override
|
||||
public Message createMessage(Session session) throws JMSException {
|
||||
return session.createTextMessage("request content");
|
||||
}
|
||||
});
|
||||
|
||||
Message response = jmsTemplate.sendAndReceive("spring.test.observation",
|
||||
(MessageCreator) session -> session.createTextMessage("request content"));
|
||||
|
||||
String responseBody = response.getBody(String.class);
|
||||
assertThat(responseBody).isEqualTo("response content");
|
||||
|
||||
+3
-3
@@ -45,9 +45,9 @@ public class TestReturnValueHandler implements HandlerMethodReturnValueHandler {
|
||||
@Override
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
public Mono<Void> handleReturnValue(@Nullable Object value, MethodParameter returnType, Message<?> message) {
|
||||
return value instanceof Publisher ?
|
||||
new ChannelSendOperator((Publisher) value, this::saveValue) :
|
||||
saveValue(value);
|
||||
return (value instanceof Publisher publisher ?
|
||||
new ChannelSendOperator(publisher, this::saveValue) :
|
||||
saveValue(value));
|
||||
}
|
||||
|
||||
private Mono<Void> saveValue(@Nullable Object value) {
|
||||
|
||||
@@ -185,14 +185,9 @@ class JdkClientHttpRequest extends AbstractStreamingClientHttpRequest {
|
||||
}
|
||||
else {
|
||||
switch (this.method.name()) {
|
||||
case "GET" :
|
||||
builder.GET();
|
||||
break;
|
||||
case "DELETE" :
|
||||
builder.DELETE();
|
||||
break;
|
||||
default :
|
||||
builder.method(this.method.name(), HttpRequest.BodyPublishers.noBody());
|
||||
case "GET" -> builder.GET();
|
||||
case "DELETE" -> builder.DELETE();
|
||||
default -> builder.method(this.method.name(), HttpRequest.BodyPublishers.noBody());
|
||||
}
|
||||
}
|
||||
return builder.build();
|
||||
|
||||
@@ -197,6 +197,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
|
||||
return this.headers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable Principal getPrincipal() {
|
||||
return this.servletRequest.getUserPrincipal();
|
||||
}
|
||||
|
||||
@@ -95,32 +95,20 @@ abstract class RfcUriParser {
|
||||
@Override
|
||||
public void handleNext(InternalParser parser, char c, int i) {
|
||||
switch (c) {
|
||||
case '/':
|
||||
parser.advanceTo(HOST_OR_PATH, i);
|
||||
break;
|
||||
case ';':
|
||||
case '.':
|
||||
parser.advanceTo(PATH, i);
|
||||
break;
|
||||
case '%':
|
||||
parser.markPercentEncoding().advanceTo(PATH, i);
|
||||
break;
|
||||
case '?':
|
||||
parser.advanceTo(QUERY, i + 1); // empty path
|
||||
break;
|
||||
case '#':
|
||||
parser.advanceTo(FRAGMENT, i + 1); // empty path
|
||||
break;
|
||||
case '*':
|
||||
parser.advanceTo(WILDCARD);
|
||||
break;
|
||||
default:
|
||||
case '/' -> parser.advanceTo(HOST_OR_PATH, i);
|
||||
case ';', '.' -> parser.advanceTo(PATH, i);
|
||||
case '%' -> parser.markPercentEncoding().advanceTo(PATH, i);
|
||||
case '?' -> parser.advanceTo(QUERY, i + 1); // empty path
|
||||
case '#' -> parser.advanceTo(FRAGMENT, i + 1); // empty path
|
||||
case '*' -> parser.advanceTo(WILDCARD);
|
||||
default -> {
|
||||
if (parser.hasScheme()) {
|
||||
parser.resolveIfOpaque().advanceTo(PATH, i);
|
||||
}
|
||||
else {
|
||||
parser.advanceTo(SCHEME_OR_PATH, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,20 +124,12 @@ abstract class RfcUriParser {
|
||||
@Override
|
||||
public void handleNext(InternalParser parser, char c, int i) {
|
||||
switch (c) {
|
||||
case '/':
|
||||
parser.componentIndex(i).captureHost().advanceTo(HOST, i + 1); // empty host to start
|
||||
break;
|
||||
case '%':
|
||||
case '@':
|
||||
case ';':
|
||||
case '?':
|
||||
case '#':
|
||||
case '.':
|
||||
case '/' -> parser.componentIndex(i).captureHost().advanceTo(HOST, i + 1); // empty host to start
|
||||
case '%', '@', ';', '?', '#', '.' -> {
|
||||
parser.index(--i);
|
||||
parser.advanceTo(PATH);
|
||||
break;
|
||||
default:
|
||||
parser.advanceTo(PATH);
|
||||
}
|
||||
default -> parser.advanceTo(PATH);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,22 +145,11 @@ abstract class RfcUriParser {
|
||||
@Override
|
||||
public void handleNext(InternalParser parser, char c, int i) {
|
||||
switch (c) {
|
||||
case ':':
|
||||
parser.captureScheme().advanceTo(START);
|
||||
break;
|
||||
case '/':
|
||||
case ';':
|
||||
parser.advanceTo(PATH);
|
||||
break;
|
||||
case '%':
|
||||
parser.markPercentEncoding().advanceTo(PATH);
|
||||
break;
|
||||
case '?':
|
||||
parser.capturePath().advanceTo(QUERY, i + 1);
|
||||
break;
|
||||
case '#':
|
||||
parser.capturePath().advanceTo(FRAGMENT, i + 1);
|
||||
break;
|
||||
case ':' -> parser.captureScheme().advanceTo(START);
|
||||
case '/', ';' -> parser.advanceTo(PATH);
|
||||
case '%' -> parser.markPercentEncoding().advanceTo(PATH);
|
||||
case '?' -> parser.capturePath().advanceTo(QUERY, i + 1);
|
||||
case '#' -> parser.capturePath().advanceTo(FRAGMENT, i + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,33 +165,22 @@ abstract class RfcUriParser {
|
||||
@Override
|
||||
public void handleNext(InternalParser parser, char c, int i) {
|
||||
switch (c) {
|
||||
case '/':
|
||||
parser.captureHost().advanceTo(PATH, i);
|
||||
break;
|
||||
case ':':
|
||||
parser.captureHostIfNotEmpty().advanceTo(PORT, i + 1);
|
||||
break;
|
||||
case '?':
|
||||
parser.captureHostIfNotEmpty().advanceTo(QUERY, i + 1);
|
||||
break;
|
||||
case '#':
|
||||
parser.captureHostIfNotEmpty().advanceTo(FRAGMENT, i + 1);
|
||||
break;
|
||||
case '@':
|
||||
parser.captureUser().componentIndex(i + 1);
|
||||
break;
|
||||
case '[':
|
||||
case '/' -> parser.captureHost().advanceTo(PATH, i);
|
||||
case ':' -> parser.captureHostIfNotEmpty().advanceTo(PORT, i + 1);
|
||||
case '?' -> parser.captureHostIfNotEmpty().advanceTo(QUERY, i + 1);
|
||||
case '#' -> parser.captureHostIfNotEmpty().advanceTo(FRAGMENT, i + 1);
|
||||
case '@' -> parser.captureUser().componentIndex(i + 1);
|
||||
case '[' -> {
|
||||
verify(parser.isAtStartOfComponent(), parser, "Bad authority");
|
||||
parser.advanceTo(IPV6);
|
||||
break;
|
||||
case '%':
|
||||
parser.markPercentEncoding();
|
||||
break;
|
||||
default:
|
||||
}
|
||||
case '%' -> parser.markPercentEncoding();
|
||||
default -> {
|
||||
boolean isAllowed = (parser.processCurlyBrackets(c) ||
|
||||
parser.countDownPercentEncodingInHost(c) ||
|
||||
HierarchicalUriComponents.Type.URI.isUnreservedOrSubDelimiter(c));
|
||||
verify(isAllowed, parser, "Bad authority");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,7 +196,7 @@ abstract class RfcUriParser {
|
||||
@Override
|
||||
public void handleNext(InternalParser parser, char c, int i) {
|
||||
switch (c) {
|
||||
case ']':
|
||||
case ']' -> {
|
||||
parser.index(++i);
|
||||
parser.captureHost();
|
||||
if (parser.hasNext()) {
|
||||
@@ -253,11 +211,11 @@ abstract class RfcUriParser {
|
||||
fail(parser, "Bad authority");
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ':':
|
||||
break;
|
||||
default:
|
||||
verifyIsHexDigit(c, parser, "Bad authority");
|
||||
}
|
||||
case ':' -> {
|
||||
// no-op
|
||||
}
|
||||
default -> verifyIsHexDigit(c, parser, "Bad authority");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -307,18 +265,13 @@ abstract class RfcUriParser {
|
||||
public void handleNext(InternalParser parser, char c, int i) {
|
||||
if (!parser.countDownPercentEncodingInPath(c)) {
|
||||
switch (c) {
|
||||
case '?':
|
||||
if (parser.isOpaque()) {
|
||||
break;
|
||||
case '?' -> {
|
||||
if (!parser.isOpaque()) {
|
||||
parser.capturePath().advanceTo(QUERY, i + 1);
|
||||
}
|
||||
parser.capturePath().advanceTo(QUERY, i + 1);
|
||||
break;
|
||||
case '#':
|
||||
parser.capturePath().advanceTo(FRAGMENT, i + 1);
|
||||
break;
|
||||
case '%':
|
||||
parser.markPercentEncoding();
|
||||
break;
|
||||
}
|
||||
case '#' -> parser.capturePath().advanceTo(FRAGMENT, i + 1);
|
||||
case '%' -> parser.markPercentEncoding();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ class RestClientProxyRegistryIntegrationTests {
|
||||
@Override
|
||||
protected boolean isEligibleForOverriding(String className) {
|
||||
return className.contains("EchoA");
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
|
||||
|
||||
+2
-1
@@ -41,8 +41,9 @@ public class JettyCoreHttpServer extends AbstractHttpServer {
|
||||
|
||||
@Override
|
||||
protected void initServer() {
|
||||
if (logger.isTraceEnabled())
|
||||
if (logger.isTraceEnabled()) {
|
||||
this.byteBufferPool = new ArrayByteBufferPool.Tracking();
|
||||
}
|
||||
this.jettyServer = new Server(null, null, byteBufferPool);
|
||||
|
||||
ServerConnector connector = new ServerConnector(this.jettyServer);
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
||||
*/
|
||||
public abstract class AbstractMessageConverterMethodArgumentResolver implements HandlerMethodArgumentResolver {
|
||||
|
||||
protected enum ConverterType { BASE, GENERIC, SMART };
|
||||
protected enum ConverterType { BASE, GENERIC, SMART }
|
||||
|
||||
|
||||
private static final Set<HttpMethod> SUPPORTED_METHODS = Set.of(HttpMethod.POST, HttpMethod.PUT, HttpMethod.PATCH);
|
||||
|
||||
+2
-2
@@ -897,8 +897,8 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter
|
||||
// Obtain wrapped response to enforce lifecycle rule from Servlet spec, section 2.3.3.4
|
||||
response = asyncWebRequest.getNativeResponse(HttpServletResponse.class);
|
||||
|
||||
ServletWebRequest webRequest = (asyncWebRequest instanceof ServletWebRequest ?
|
||||
(ServletWebRequest) asyncWebRequest : new ServletWebRequest(request, response));
|
||||
ServletWebRequest webRequest = (asyncWebRequest instanceof ServletWebRequest servletWebRequest ?
|
||||
servletWebRequest : new ServletWebRequest(request, response));
|
||||
|
||||
WebDataBinderFactory binderFactory = getDataBinderFactory(handlerMethod);
|
||||
ModelFactory modelFactory = getModelFactory(handlerMethod, binderFactory);
|
||||
|
||||
-1
@@ -52,7 +52,6 @@ public class WebSocketHttpHeaders extends HttpHeaders {
|
||||
* Construct a new, empty {@code WebSocketHttpHeaders} instance.
|
||||
*/
|
||||
public WebSocketHttpHeaders() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+2
-2
@@ -463,8 +463,8 @@ class MessageBrokerBeanDefinitionParserTests {
|
||||
}
|
||||
|
||||
private WebSocketHandler unwrapWebSocketHandler(WebSocketHandler handler) {
|
||||
return (handler instanceof WebSocketHandlerDecorator) ?
|
||||
((WebSocketHandlerDecorator) handler).getLastHandler() : handler;
|
||||
return (handler instanceof WebSocketHandlerDecorator decorator ?
|
||||
decorator.getLastHandler() : handler);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user