diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationContactSource.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationContactSource.java index 30c3677b3..5697fdb6f 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationContactSource.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationContactSource.java @@ -17,7 +17,6 @@ import net.java.sip.communicator.impl.gui.*; import net.java.sip.communicator.impl.gui.main.contactlist.*; -import net.java.sip.communicator.service.contactlist.*; import net.java.sip.communicator.service.customcontactactions.*; import net.java.sip.communicator.service.protocol.*; import net.java.sip.communicator.service.protocol.OperationSetMessageWaiting.MessageType; @@ -307,20 +306,35 @@ public UIContactDetailCustomAction( /** * Performs the action on button click. */ - public void actionPerformed(UIContactDetail contactDetail, int x, int y) + public void actionPerformed(final UIContactDetail contactDetail, + final int x, + final int y) { - try + new Thread() { - contactAction.actionPerformed( - (NotificationMessage) contactDetail.getDescriptor(), x, y); - } - catch (OperationFailedException e) - { - new ErrorDialog(null, - GuiActivator.getResources() - .getI18NString("service.gui.ERROR"), - e.getMessage()); - } + public void run() + { + try + { + contactAction.actionPerformed( + (NotificationMessage) contactDetail.getDescriptor(), + x, y); + } + catch (final OperationFailedException e) + { + SwingUtilities.invokeLater(new Runnable() + { + public void run() + { + new ErrorDialog(null, + GuiActivator.getResources() + .getI18NString("service.gui.ERROR"), + e.getMessage()).setVisible(true); + } + }); + } + } + }.start(); } } diff --git a/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java b/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java index 8a3967a3d..0df6e669b 100644 --- a/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java +++ b/src/net/java/sip/communicator/impl/gui/main/contactlist/notifsource/NotificationGroup.java @@ -225,6 +225,7 @@ public void messageWaitingNotify(MessageWaitingEvent event) if (toRemove) { removeNotificationContact(contacts.get(identifier)); + contacts.remove(identifier); } }