diff options
author | Vincent Lucas <chenzo@jitsi.org> | 2013-08-31 00:46:11 +0200 |
---|---|---|
committer | Vincent Lucas <chenzo@jitsi.org> | 2013-08-31 00:46:11 +0200 |
commit | e6fe77ab44396a7bff9fbbec655cb88de4372bf3 (patch) | |
tree | d1a617247b476db90ecd912b4b018a454b6e66c3 /src/net/java/sip/communicator/plugin | |
parent | 79a55e8cbdba60fc7695820866f8a27a68a493ab (diff) | |
download | jitsi-e6fe77ab44396a7bff9fbbec655cb88de4372bf3.zip jitsi-e6fe77ab44396a7bff9fbbec655cb88de4372bf3.tar.gz jitsi-e6fe77ab44396a7bff9fbbec655cb88de4372bf3.tar.bz2 |
Corrects synchronization issue when adding contacts. Adds function to get the pending notification for Outlook contacts.
Diffstat (limited to 'src/net/java/sip/communicator/plugin')
3 files changed, 57 insertions, 7 deletions
diff --git a/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java b/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java index 2187ac4..5ed8563 100644 --- a/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java +++ b/src/net/java/sip/communicator/plugin/addrbook/macosx/MacOSXAddrBookContactSourceService.java @@ -300,4 +300,14 @@ public class MacOSXAddrBookContactSourceService { return -1; } + + /** + * Returns the number of contact notifications to deal with. + * + * @return The number of contact notifications to deal with. + */ + public int getNbRemainingNotifications() + { + return 0; + } } diff --git a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactQuery.java b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactQuery.java index a9a1676..1958a8d 100644 --- a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactQuery.java +++ b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactQuery.java @@ -855,7 +855,7 @@ public class MsOutlookAddrBookContactQuery * @throws MsOutlookMAPIHResultException if anything goes wrong while * getting the properties of the specified <tt>MAPI_MAILUSER</tt> */ - private boolean onMailUser(String id) + private synchronized boolean onMailUser(String id) throws MsOutlookMAPIHResultException { Object[] props = null; @@ -1046,7 +1046,10 @@ public class MsOutlookAddrBookContactQuery */ public void inserted(String id) { - insertedOrUpdated(id, 0); + synchronized (MsOutlookAddrBookContactQuery.class) + { + insertedOrUpdated(id, 0); + } } /** @@ -1056,7 +1059,10 @@ public class MsOutlookAddrBookContactQuery */ public void updated(String id) { - insertedOrUpdated(id, 1); + synchronized (MsOutlookAddrBookContactQuery.class) + { + insertedOrUpdated(id, 1); + } } /** @@ -1106,11 +1112,14 @@ public class MsOutlookAddrBookContactQuery { if(id != null) { - SourceContact sourceContact = findSourceContactByID(id, 1); - - if(sourceContact != null) + synchronized (MsOutlookAddrBookContactQuery.class) { - fireContactRemoved(sourceContact); + SourceContact sourceContact = findSourceContactByID(id, 1); + + if(sourceContact != null) + { + fireContactRemoved(sourceContact); + } } } } diff --git a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java index bbe6110..a30d8df 100644 --- a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java +++ b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactSourceService.java @@ -422,6 +422,16 @@ public class MsOutlookAddrBookContactSourceService contactIds.add(idFunction); } } + + /** + * Returns the number of contact notifications to deal with. + * + * @return The number of contact notifications to deal with. + */ + public int getNbRemainingNotifications() + { + return contactIds.size(); + } } /** @@ -519,4 +529,25 @@ public class MsOutlookAddrBookContactSourceService { return getOutlookVersion(); } + + /** + * Returns the number of contact notifications to deal with. + * + * @return The number of contact notifications to deal with. + */ + public int getNbRemainingNotifications() + { + int nbNotifications = 0; + + synchronized(notificationThreadMutex) + { + if(notificationThread != null) + { + nbNotifications + = notificationThread.getNbRemainingNotifications(); + } + } + + return nbNotifications; + } } |