Browse Source

Fix concurrency issue when accessing Server's channels or queries

Fixes CLIENT-180

Change-Id: I9b0769a1001d6e0b7ae8aef96ce4d42d5d8de034
Reviewed-on: http://gerrit.dmdirc.com/1801
Automatic-Compile: DMDirc Local Commits <dmdirc@googlemail.com>
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.6.5rc1
Chris Smith 13 years ago
parent
commit
dde3b960fb
1 changed files with 3 additions and 3 deletions
  1. 3
    3
      src/com/dmdirc/Server.java

+ 3
- 3
src/com/dmdirc/Server.java View File

@@ -60,7 +60,6 @@ import java.net.URI;
60 60
 import java.util.ArrayList;
61 61
 import java.util.Collection;
62 62
 import java.util.Collections;
63
-import java.util.HashMap;
64 63
 import java.util.HashSet;
65 64
 import java.util.List;
66 65
 import java.util.Map;
@@ -68,6 +67,7 @@ import java.util.Random;
68 67
 import java.util.Set;
69 68
 import java.util.Timer;
70 69
 import java.util.TimerTask;
70
+import java.util.concurrent.ConcurrentSkipListMap;
71 71
 import java.util.concurrent.locks.ReadWriteLock;
72 72
 import java.util.concurrent.locks.ReentrantReadWriteLock;
73 73
 
@@ -98,10 +98,10 @@ public class Server extends WritableFrameContainer<ServerWindow> implements Conf
98 98
     // <editor-fold defaultstate="collapsed" desc="Instance">
99 99
 
100 100
     /** Open channels that currently exist on the server. */
101
-    private final Map<String, Channel> channels = new HashMap<String, Channel>();
101
+    private final Map<String, Channel> channels = new ConcurrentSkipListMap<String, Channel>();
102 102
 
103 103
     /** Open query windows on the server. */
104
-    private final Map<String, Query> queries = new HashMap<String, Query>();
104
+    private final Map<String, Query> queries = new ConcurrentSkipListMap<String, Query>();
105 105
 
106 106
     /** The Parser instance handling this server. */
107 107
     private Parser parser;

Loading…
Cancel
Save