You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2019/11/10 11:50:48 UTC
[aries-rsa] branch master updated: Two inconsistency introduced
with ARIES-1941: (#34)
This is an automated email from the ASF dual-hosted git repository.
cschneider pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-rsa.git
The following commit(s) were added to refs/heads/master by this push:
new c73cd37 Two inconsistency introduced with ARIES-1941: (#34)
c73cd37 is described below
commit c73cd3764676e4234ef0d00339cea45afe0df754
Author: Arnoud Glimmerveen <ar...@glimmerveen.org>
AuthorDate: Sun Nov 10 12:50:41 2019 +0100
Two inconsistency introduced with ARIES-1941: (#34)
1) The copy of the keySet was incorrectly removed by 927d0b3, and is needed regardless of the external methods being thread-safe.
2) Clear method of MultiMap must use the same mutex as the other public methods.
---
.../org/apache/aries/rsa/topologymanager/importer/MultiMap.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/MultiMap.java b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/MultiMap.java
index b0f8dbe..37cbcf7 100644
--- a/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/MultiMap.java
+++ b/topology-manager/src/main/java/org/apache/aries/rsa/topologymanager/importer/MultiMap.java
@@ -65,12 +65,14 @@ public class MultiMap<T> {
}
public synchronized void remove(T toRemove) {
- for (String key : map.keySet()) {
+ // Use copy of keySet, as subsequent remove may modify the keySet itself
+ Set<String> keys = new HashSet<>(map.keySet());
+ for (String key : keys) {
remove(key, toRemove);
}
}
- public void clear() {
+ public synchronized void clear() {
map.clear();
}
}