Avoid unnecessary explicit initialization of Atomics

Constructor calls like new AtomicInteger(0) cause a volatile write that
can be saved in cases where the constructor parameter is the default
value.

See gh-23575
This commit is contained in:
dreis2211 2020-10-02 12:46:27 +02:00 committed by Stephane Nicoll
parent 48c2f4d9cc
commit ecee9c0f9b
13 changed files with 21 additions and 21 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-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.
@ -38,7 +38,7 @@ public final class OnlyOnceLoggingDenyMeterFilter implements MeterFilter {
private static final Log logger = LogFactory.getLog(OnlyOnceLoggingDenyMeterFilter.class); private static final Log logger = LogFactory.getLog(OnlyOnceLoggingDenyMeterFilter.class);
private final AtomicBoolean alreadyWarned = new AtomicBoolean(false); private final AtomicBoolean alreadyWarned = new AtomicBoolean();
private final Supplier<String> message; private final Supplier<String> message;

View File

@ -87,7 +87,7 @@ class Neo4jHealthIndicatorTests {
ResultSummary resultSummary = ResultSummaryMock.createResultSummary("4711", "My Home", ""); ResultSummary resultSummary = ResultSummaryMock.createResultSummary("4711", "My Home", "");
Session session = mock(Session.class); Session session = mock(Session.class);
Result statementResult = mockStatementResult(resultSummary, "some edition"); Result statementResult = mockStatementResult(resultSummary, "some edition");
AtomicInteger count = new AtomicInteger(0); AtomicInteger count = new AtomicInteger();
given(session.run(anyString())).will((invocation) -> { given(session.run(anyString())).will((invocation) -> {
if (count.compareAndSet(0, 1)) { if (count.compareAndSet(0, 1)) {
throw new SessionExpiredException("Session expired"); throw new SessionExpiredException("Session expired");

View File

@ -66,7 +66,7 @@ class Neo4jReactiveHealthIndicatorTest {
ResultSummary resultSummary = ResultSummaryMock.createResultSummary("4711", "My Home", ""); ResultSummary resultSummary = ResultSummaryMock.createResultSummary("4711", "My Home", "");
RxSession session = mock(RxSession.class); RxSession session = mock(RxSession.class);
RxResult statementResult = mockStatementResult(resultSummary, "some edition"); RxResult statementResult = mockStatementResult(resultSummary, "some edition");
AtomicInteger count = new AtomicInteger(0); AtomicInteger count = new AtomicInteger();
given(session.run(anyString())).will((invocation) -> { given(session.run(anyString())).will((invocation) -> {
if (count.compareAndSet(0, 1)) { if (count.compareAndSet(0, 1)) {
throw new SessionExpiredException("Session expired"); throw new SessionExpiredException("Session expired");

View File

@ -60,7 +60,7 @@ public class BackgroundPreinitializer implements ApplicationListener<SpringAppli
*/ */
public static final String IGNORE_BACKGROUNDPREINITIALIZER_PROPERTY_NAME = "spring.backgroundpreinitializer.ignore"; public static final String IGNORE_BACKGROUNDPREINITIALIZER_PROPERTY_NAME = "spring.backgroundpreinitializer.ignore";
private static final AtomicBoolean preinitializationStarted = new AtomicBoolean(false); private static final AtomicBoolean preinitializationStarted = new AtomicBoolean();
private static final CountDownLatch preinitializationComplete = new CountDownLatch(1); private static final CountDownLatch preinitializationComplete = new CountDownLatch(1);

View File

@ -79,7 +79,7 @@ public class SpringApplicationBuilder {
private SpringApplicationBuilder parent; private SpringApplicationBuilder parent;
private final AtomicBoolean running = new AtomicBoolean(false); private final AtomicBoolean running = new AtomicBoolean();
private final Set<Class<?>> sources = new LinkedHashSet<>(); private final Set<Class<?>> sources = new LinkedHashSet<>();

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-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.
@ -86,7 +86,7 @@ public class ApplicationPidFileWriter implements ApplicationListener<SpringAppli
FAIL_ON_WRITE_ERROR_PROPERTIES = Collections.unmodifiableList(properties); FAIL_ON_WRITE_ERROR_PROPERTIES = Collections.unmodifiableList(properties);
} }
private static final AtomicBoolean created = new AtomicBoolean(false); private static final AtomicBoolean created = new AtomicBoolean();
private int order = Ordered.HIGHEST_PRECEDENCE + 13; private int order = Ordered.HIGHEST_PRECEDENCE + 13;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-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.
@ -74,7 +74,7 @@ public class ContextIdApplicationContextInitializer
*/ */
static class ContextId { static class ContextId {
private final AtomicLong children = new AtomicLong(0); private final AtomicLong children = new AtomicLong();
private final String id; private final String id;

View File

@ -170,7 +170,7 @@ public class LoggingApplicationListener implements GenericApplicationListener {
private static final Class<?>[] SOURCE_TYPES = { SpringApplication.class, ApplicationContext.class }; private static final Class<?>[] SOURCE_TYPES = { SpringApplication.class, ApplicationContext.class };
private static final AtomicBoolean shutdownHookRegistered = new AtomicBoolean(false); private static final AtomicBoolean shutdownHookRegistered = new AtomicBoolean();
private final Log logger = LogFactory.getLog(getClass()); private final Log logger = LogFactory.getLog(getClass());

View File

@ -1506,7 +1506,7 @@ class SpringApplicationTests {
@Bean @Bean
AtomicInteger counter() { AtomicInteger counter() {
return new AtomicInteger(0); return new AtomicInteger();
} }
@Bean @Bean
@ -1529,7 +1529,7 @@ class SpringApplicationTests {
@Bean @Bean
AtomicInteger counter() { AtomicInteger counter() {
return new AtomicInteger(0); return new AtomicInteger();
} }
@Bean @Bean
@ -1553,7 +1553,7 @@ class SpringApplicationTests {
@Bean @Bean
AtomicInteger counter() { AtomicInteger counter() {
return new AtomicInteger(0); return new AtomicInteger();
} }
@Bean @Bean

View File

@ -1355,7 +1355,7 @@ public abstract class AbstractServletWebServerFactoryTests {
private class TestGzipInputStreamFactory implements InputStreamFactory { private class TestGzipInputStreamFactory implements InputStreamFactory {
private final AtomicBoolean requested = new AtomicBoolean(false); private final AtomicBoolean requested = new AtomicBoolean();
@Override @Override
public InputStream create(InputStream in) throws IOException { public InputStream create(InputStream in) throws IOException {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-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.
@ -28,7 +28,7 @@ import org.springframework.web.socket.handler.TextWebSocketHandler;
public class SnakeWebSocketHandler extends TextWebSocketHandler { public class SnakeWebSocketHandler extends TextWebSocketHandler {
private static final AtomicInteger snakeIds = new AtomicInteger(0); private static final AtomicInteger snakeIds = new AtomicInteger();
private static final Random random = new Random(); private static final Random random = new Random();

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-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.
@ -28,7 +28,7 @@ import org.springframework.web.socket.handler.TextWebSocketHandler;
public class SnakeWebSocketHandler extends TextWebSocketHandler { public class SnakeWebSocketHandler extends TextWebSocketHandler {
private static final AtomicInteger snakeIds = new AtomicInteger(0); private static final AtomicInteger snakeIds = new AtomicInteger();
private static final Random random = new Random(); private static final Random random = new Random();

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-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.
@ -28,7 +28,7 @@ import org.springframework.web.socket.handler.TextWebSocketHandler;
public class SnakeWebSocketHandler extends TextWebSocketHandler { public class SnakeWebSocketHandler extends TextWebSocketHandler {
private static final AtomicInteger snakeIds = new AtomicInteger(0); private static final AtomicInteger snakeIds = new AtomicInteger();
private static final Random random = new Random(); private static final Random random = new Random();