diff --git a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java index ce224305b..4d6fd89c7 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/IrcStack.java @@ -1034,8 +1034,8 @@ public void onUserNotice(UserNotice msg) OperationSetBasicInstantMessaging.HTML_MIME_TYPE, OperationSetBasicInstantMessaging.DEFAULT_MIME_ENCODING, ""); Contact from = - IrcStack.this.provider.getPersistentPresence().findContactByID( - user); + IrcStack.this.provider.getPersistentPresence() + .findOrCreateContactByID(user); IrcStack.this.provider.getBasicInstantMessaging() .fireMessageReceived(message, from); } diff --git a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java index a209bc559..1c5aad015 100644 --- a/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/irc/OperationSetPersistentPresenceIrcImpl.java @@ -44,23 +44,9 @@ protected OperationSetPersistentPresenceIrcImpl( private ContactIrcImpl createVolatileContact(String id) { - // Check whether a volatile group already exists and if not create - // one + // Get non-persistent group for volatile contacts. ContactGroupIrcImpl volatileGroup = getNonPersistentGroup(); - if (volatileGroup == null) - { - volatileGroup = - new ContactGroupIrcImpl(this.parentProvider, this.rootGroup, - IrcActivator.getResources().getI18NString( - "service.gui.NOT_IN_CONTACT_LIST_GROUP_NAME")); - - this.rootGroup.addSubGroup(volatileGroup); - - this.fireServerStoredGroupEvent(volatileGroup, - ServerStoredGroupEvent.GROUP_CREATED_EVENT); - } - // Create volatile contact ContactIrcImpl newVolatileContact = new ContactIrcImpl(this.parentProvider, id, volatileGroup); @@ -87,7 +73,17 @@ private ContactGroupIrcImpl getNonPersistentGroup() return gr; } - return null; + ContactGroupIrcImpl volatileGroup = + new ContactGroupIrcImpl(this.parentProvider, this.rootGroup, + IrcActivator.getResources().getI18NString( + "service.gui.NOT_IN_CONTACT_LIST_GROUP_NAME")); + + this.rootGroup.addSubGroup(volatileGroup); + + this.fireServerStoredGroupEvent(volatileGroup, + ServerStoredGroupEvent.GROUP_CREATED_EVENT); + + return volatileGroup; } public ContactGroup getRootGroup()