diff --git a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/StateTracker.java b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/StateTracker.java index 23ac3eac32fd..7c10f42148e0 100644 --- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/StateTracker.java +++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/StateTracker.java @@ -30,16 +30,12 @@ public class StateTracker { /** * Change the current state. - *

- * This method is synchronized to ensure that all state changes are captured correctly and in the same order. - * Synchronization is acceptable since it is assumed that state changes will be relatively infrequent. * * @param newState the current state; may not be null * @param now the current time in milliseconds */ - public synchronized void changeState(State newState, long now) { - // JDK8: remove synchronization by using lastState.getAndUpdate(oldState->oldState.newState(newState, now)); - lastState.set(lastState.get().newState(newState, now)); + public void changeState(State newState, long now) { + lastState.getAndUpdate(oldState -> oldState.newState(newState, now)); } /**