From 5cd9b202b8c7313ad10187d4ced9679335ec6620 Mon Sep 17 00:00:00 2001
From: Ramin Yaghoubzadeh <ryaghoubzadeh@uni-bielefeld.de>
Date: Tue, 28 Jan 2014 15:59:17 +0100
Subject: [PATCH] Java: using concurrent hash maps; Py: Added new ivy files

---
 ipaacalib/java/src/ipaaca/IUStore.java     | 4 ++--
 ipaacalib/java/src/ipaaca/InputBuffer.java | 8 ++++++++
 ipaacalib/python/ivy.xml                   | 2 ++
 ipaacalib/python/test/ivy.xml              | 2 ++
 4 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/ipaacalib/java/src/ipaaca/IUStore.java b/ipaacalib/java/src/ipaaca/IUStore.java
index 0edc347..a81b9b1 100644
--- a/ipaacalib/java/src/ipaaca/IUStore.java
+++ b/ipaacalib/java/src/ipaaca/IUStore.java
@@ -32,7 +32,7 @@
 
 package ipaaca;
 
-import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * An IUStore maps an IUid to an IU
@@ -40,7 +40,7 @@ import java.util.HashMap;
  *
  * @param <X> type of AbstractIU stored in the store
  */
-public class IUStore<X extends AbstractIU> extends HashMap<String, X>
+public class IUStore<X extends AbstractIU> extends ConcurrentHashMap<String, X>
 {
     private static final long serialVersionUID = 1L;
 }
diff --git a/ipaacalib/java/src/ipaaca/InputBuffer.java b/ipaacalib/java/src/ipaaca/InputBuffer.java
index de2be72..1a3bdb4 100644
--- a/ipaacalib/java/src/ipaaca/InputBuffer.java
+++ b/ipaacalib/java/src/ipaaca/InputBuffer.java
@@ -269,8 +269,16 @@ public class InputBuffer extends Buffer
         if (event.getData() instanceof RemoteMessageIU)
         {
             RemoteMessageIU rm = (RemoteMessageIU) event.getData();
+            if (messageStore.containsKey(rm.getUid())) {
+                logger.warn("Spurious RemoteMessage event: already got this UID: "+rm.getUid());
+                return;
+            }
+            
+            //logger.info("Adding Message "+rm.getUid());
             messageStore.put(rm.getUid(), rm);
+            //logger.info("Calling handlers for Message "+rm.getUid());
             callIuEventHandlers(rm.getUid(),false, IUEventType.MESSAGE, rm.getCategory());
+            //logger.info("Removing Message "+rm.getUid());
             messageStore.remove(rm.getUid());
         }
         else if (event.getData() instanceof RemotePushIU)
diff --git a/ipaacalib/python/ivy.xml b/ipaacalib/python/ivy.xml
index 6746fd8..e559706 100644
--- a/ipaacalib/python/ivy.xml
+++ b/ipaacalib/python/ivy.xml
@@ -6,6 +6,8 @@
    <dependencies>
       <dependency org="google" name="protobuf-python" rev="latest.release"/>
       <dependency org="rsb" name="rsb-python" rev="latest.release"/>
+            <dependency org="spread" name="spread" rev="latest.release"/>
    </dependencies>
 
 </ivy-module>
+
diff --git a/ipaacalib/python/test/ivy.xml b/ipaacalib/python/test/ivy.xml
index 1e4d577..03db403 100644
--- a/ipaacalib/python/test/ivy.xml
+++ b/ipaacalib/python/test/ivy.xml
@@ -3,5 +3,7 @@
    <dependencies>
 	<dependency org="hamcrest" name="hamcrest-python" rev="latest.release"/>
         <dependency org="mockito" name="mockito-python"  rev="latest.release" />
+        <dependency org="nose" name="nose"  rev="latest.release" />
    </dependencies>
 </ivy-module>
+
-- 
GitLab