diff --git a/src/net/azib/ipscan/core/state/StateMachine.java b/src/net/azib/ipscan/core/state/StateMachine.java index 42f109f6..0e083d3f 100644 --- a/src/net/azib/ipscan/core/state/StateMachine.java +++ b/src/net/azib/ipscan/core/state/StateMachine.java @@ -6,6 +6,7 @@ package net.azib.ipscan.core.state; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -18,7 +19,7 @@ public class StateMachine { private ScanningState state = ScanningState.IDLE; - private List transitionListeners = new ArrayList(); + private List transitionListeners = Collections.synchronizedList(new ArrayList()); /** * @param state @@ -64,8 +65,10 @@ public class StateMachine { } private void notifyAboutTransition() { - for (StateTransitionListener listener : transitionListeners) { - listener.transitionTo(state); + synchronized (transitionListeners) { + for (StateTransitionListener listener : transitionListeners) { + listener.transitionTo(state); + } } }