diff --git a/src/net/java/sip/communicator/plugin/desktoputil/presence/AbstractStatusMessageMenu.java b/src/net/java/sip/communicator/plugin/desktoputil/presence/AbstractStatusMessageMenu.java index 1e3a93971..227294053 100644 --- a/src/net/java/sip/communicator/plugin/desktoputil/presence/AbstractStatusMessageMenu.java +++ b/src/net/java/sip/communicator/plugin/desktoputil/presence/AbstractStatusMessageMenu.java @@ -714,11 +714,18 @@ protected void fireStatusMessageUpdated( getDescriptor(), STATUS_MESSAGE_UPDATED_PROP, oldMessage, newMessage); - if (propertyChangeListeners != null) + + + + java.util.List listeners; + synchronized(propertyChangeListeners) { - for (PropertyChangeListener target : propertyChangeListeners) - target.propertyChange(evt); + listeners = new ArrayList( + propertyChangeListeners); } + + for (PropertyChangeListener target : listeners) + target.propertyChange(evt); } /** @@ -731,11 +738,16 @@ private void fireCustomStatusMessagesUpdated() getDescriptor(), CUSTOM_STATUS_MESSAGES_UPDATED_PROP, null, null); - if (propertyChangeListeners != null) + + java.util.List listeners; + synchronized(propertyChangeListeners) { - for (PropertyChangeListener target : propertyChangeListeners) - target.propertyChange(evt); + listeners = new ArrayList( + propertyChangeListeners); } + + for (PropertyChangeListener target : listeners) + target.propertyChange(evt); } /**