1
Description: When cleaning up a walrus volume, there was a memory leak
2
Origin: Manually created from the diff between Ubuntu 1.6.2 branch and upstreams
3
--- a/clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/WalrusDataMessenger.java
4
+++ b/clc/modules/core/src/main/java/edu/ucsb/eucalyptus/util/WalrusDataMessenger.java
6
return getQueue(key1, key2);
9
+ public WalrusDataQueue<WalrusDataMessage> interruptAllAndGetQueue(String key1, String key2) {
10
+ ConcurrentHashMap<String,WalrusDataQueue<WalrusDataMessage>> queues = queueMap.get(key1);
11
+ if(queues != null) {
12
+ for (WalrusDataQueue<WalrusDataMessage> queue: queues.values()) {
13
+ queue.setInterrupted(true);
16
+ return getQueue(key1, key2);
19
public void removeQueue(String key1, String key2) {
20
if(queueMap.containsKey(key1)) {
21
ConcurrentHashMap<String, WalrusDataQueue<WalrusDataMessage>> queues = queueMap.get(key1);
22
if(queues.containsKey(key2)) {
25
+ queueMap.remove(key1);