diff --git a/plugins/sip/src/main/java/net/java/sipmack/sip/Call.java b/plugins/sip/src/main/java/net/java/sipmack/sip/Call.java index 9e52ca6ca..e5ea1720e 100644 --- a/plugins/sip/src/main/java/net/java/sipmack/sip/Call.java +++ b/plugins/sip/src/main/java/net/java/sipmack/sip/Call.java @@ -99,7 +99,7 @@ public class Call implements ReceiveStreamListener { private String callState = ""; // Event Management - List listeners = new CopyOnWriteArrayList(); + private final CopyOnWriteArrayList listeners = new CopyOnWriteArrayList(); public SessionDescription getLocalSdpDescription() { return localSdpDescription; @@ -316,7 +316,7 @@ public class Call implements ReceiveStreamListener { // ====================== EVENTS =========================== public void addStateChangeListener(CallListener listener) { Log.debug(listener.getClass().getCanonicalName()); - listeners.add(listener); + listeners.addIfAbsent(listener); } public void fireCallStatusChangedEvent(String oldStatus) { @@ -356,4 +356,4 @@ public class Call implements ReceiveStreamListener { public void update(ReceiveStreamEvent receiveStreamEvent) { } -} \ No newline at end of file +}