diff --git a/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerTemplateUtils.java b/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerTemplateUtils.java index 2c9fa7e478..e1ca06bf99 100644 --- a/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerTemplateUtils.java +++ b/spring-context-support/src/main/java/org/springframework/ui/freemarker/FreeMarkerTemplateUtils.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2020 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,7 +46,7 @@ public abstract class FreeMarkerTemplateUtils { public static String processTemplateIntoString(Template template, Object model) throws IOException, TemplateException { - StringWriter result = new StringWriter(); + StringWriter result = new StringWriter(1024); template.process(model, result); return result.toString(); } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/DefaultManagedTaskScheduler.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/DefaultManagedTaskScheduler.java index 1f167eeecd..133527ed77 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/DefaultManagedTaskScheduler.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/DefaultManagedTaskScheduler.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2020 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. @@ -37,10 +37,11 @@ import org.springframework.lang.Nullable; * * @author Juergen Hoeller * @since 4.0 + * @see javax.enterprise.concurrent.ManagedScheduledExecutorService */ public class DefaultManagedTaskScheduler extends ConcurrentTaskScheduler implements InitializingBean { - private JndiLocatorDelegate jndiLocator = new JndiLocatorDelegate(); + private final JndiLocatorDelegate jndiLocator = new JndiLocatorDelegate(); @Nullable private String jndiName = "java:comp/DefaultManagedScheduledExecutorService"; diff --git a/spring-core/src/main/java/org/springframework/util/FileCopyUtils.java b/spring-core/src/main/java/org/springframework/util/FileCopyUtils.java index de807fe5ac..37fb1a960b 100644 --- a/spring-core/src/main/java/org/springframework/util/FileCopyUtils.java +++ b/spring-core/src/main/java/org/springframework/util/FileCopyUtils.java @@ -218,7 +218,7 @@ public abstract class FileCopyUtils { return ""; } - StringWriter out = new StringWriter(); + StringWriter out = new StringWriter(BUFFER_SIZE); copy(in, out); return out.toString(); } diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java index 3822a3422e..d8823c1800 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java @@ -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"); * you may not use this file except in compliance with the License. @@ -275,7 +275,7 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B protected TextMessage mapToTextMessage(Object object, Session session, ObjectWriter objectWriter) throws JMSException, IOException { - StringWriter writer = new StringWriter(); + StringWriter writer = new StringWriter(1024); objectWriter.writeValue(writer, object); return session.createTextMessage(writer.toString()); } diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java index 0c6a7cc482..99c38631fd 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2020 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. @@ -48,8 +48,6 @@ import org.springframework.util.Assert; * @author Arjen Poutsma * @author Juergen Hoeller * @since 3.0 - * @see org.springframework.jms.core.JmsTemplate#convertAndSend - * @see org.springframework.jms.core.JmsTemplate#receiveAndConvert */ public class MarshallingMessageConverter implements MessageConverter, InitializingBean { @@ -215,7 +213,7 @@ public class MarshallingMessageConverter implements MessageConverter, Initializi protected TextMessage marshalToTextMessage(Object object, Session session, Marshaller marshaller) throws JMSException, IOException, XmlMappingException { - StringWriter writer = new StringWriter(); + StringWriter writer = new StringWriter(1024); Result result = new StreamResult(writer); marshaller.marshal(object, result); return session.createTextMessage(writer.toString()); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java index 4cb87dc228..fe4a194f0a 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java @@ -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"); * you may not use this file except in compliance with the License. @@ -209,9 +209,11 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { JavaType javaType = getJavaType(targetClass, conversionHint); Object payload = message.getPayload(); Class view = getSerializationView(conversionHint); - // Note: in the view case, calling withType instead of forType for compatibility with Jackson <2.5 try { - if (payload instanceof byte[]) { + if (targetClass.isInstance(payload)) { + return payload; + } + else if (payload instanceof byte[]) { if (view != null) { return this.objectMapper.readerWithView(view).forType(javaType).readValue((byte[]) payload); } @@ -219,10 +221,8 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { return this.objectMapper.readValue((byte[]) payload, javaType); } } - else if (targetClass.isInstance(payload)) { - return payload; - } else { + // Assuming a text-based source payload if (view != null) { return this.objectMapper.readerWithView(view).forType(javaType).readValue(payload.toString()); } @@ -271,7 +271,8 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { payload = out.toByteArray(); } else { - Writer writer = new StringWriter(); + // Assuming a text-based target payload + Writer writer = new StringWriter(1024); if (view != null) { this.objectMapper.writerWithView(view).writeValue(writer, payload); } diff --git a/spring-messaging/src/main/java/org/springframework/messaging/converter/MarshallingMessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/MarshallingMessageConverter.java index 34701c849a..ccc21edf09 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/converter/MarshallingMessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/MarshallingMessageConverter.java @@ -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"); * you may not use this file except in compliance with the License. @@ -172,13 +172,13 @@ public class MarshallingMessageConverter extends AbstractMessageConverter { Assert.notNull(this.marshaller, "Property 'marshaller' is required"); try { if (byte[].class == getSerializedPayloadClass()) { - ByteArrayOutputStream out = new ByteArrayOutputStream(); + ByteArrayOutputStream out = new ByteArrayOutputStream(1024); Result result = new StreamResult(out); this.marshaller.marshal(payload, result); payload = out.toByteArray(); } else { - Writer writer = new StringWriter(); + Writer writer = new StringWriter(1024); Result result = new StreamResult(writer); this.marshaller.marshal(payload, result); payload = writer.toString(); diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpResponse.java index a0830708ea..b5a24f8e1f 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpResponse.java @@ -130,15 +130,13 @@ class ReactorClientHttpResponse implements ClientHttpResponse { public MultiValueMap getCookies() { MultiValueMap result = new LinkedMultiValueMap<>(); this.response.cookies().values().stream().flatMap(Collection::stream) - .forEach(c -> - - result.add(c.name(), ResponseCookie.fromClientResponse(c.name(), c.value()) - .domain(c.domain()) - .path(c.path()) - .maxAge(c.maxAge()) - .secure(c.isSecure()) - .httpOnly(c.isHttpOnly()) - .build())); + .forEach(c -> result.add(c.name(), ResponseCookie.fromClientResponse(c.name(), c.value()) + .domain(c.domain()) + .path(c.path()) + .maxAge(c.maxAge()) + .secure(c.isSecure()) + .httpOnly(c.isHttpOnly()) + .build())); return CollectionUtils.unmodifiableMultiValueMap(result); }