Author: jflesch
Date: 2007-08-02 13:07:27 +0000 (Thu, 02 Aug 2007)
New Revision: 14463
Modified:
trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
Log:
In the messagre tree panel, try to prevent freezes by synchronizing the access
to the hashtable (shouldn't be needed ?!)
Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
2007-08-02 04:25:15 UTC (rev 14462)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
2007-08-02 13:07:27 UTC (rev 14463)
@@ -55,7 +55,7 @@
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreeNode;
-import java.util.HashMap;
+import java.util.Hashtable;
import thaw.gui.Table;
@@ -134,7 +134,7 @@
/** for the thread tree **/
private MessageNodeTree messageNodeTree;
- private HashMap messageNodeHashMap;
+ private Hashtable messageNodeHashtable;
public MessageTreeTable(MiniFrostPanel mainPanel) {
@@ -431,7 +431,7 @@
/**
* will register
*/
- public void setParent(HashMap messageNodes) {
+ public void setParent(Hashtable messageNodes) {
String inReplyTo;
if (msg != null && (inReplyTo = msg.getInReplyToId())
!= null) {
@@ -780,20 +780,22 @@
if (seeTree.isSelected()) {
- /** Filling in messageNodeHashMap **/
- messageNodeHashMap = new HashMap(msgs.size());
+ /** Filling in messageNodeHashtable **/
+ messageNodeHashtable = new Hashtable(msgs.size());
- for (Iterator it = msgs.iterator();
- it.hasNext();) {
- MessageNode node = (MessageNode)it.next();
-
messageNodeHashMap.put(node.getMessage().getMsgId(), node);
- }
+ synchronized(messageNodeHashtable) {
+ for (Iterator it = msgs.iterator();
+ it.hasNext();) {
+ MessageNode node =
(MessageNode)it.next();
+
messageNodeHashtable.put(node.getMessage().getMsgId(), node);
+ }
- /** Building the tree **/
- for (Iterator it = msgs.iterator();
- it.hasNext();) {
-
((MessageNode)it.next()).setParent(messageNodeHashMap);
+ /** Building the tree **/
+ for (Iterator it = msgs.iterator();
+ it.hasNext();) {
+
((MessageNode)it.next()).setParent(messageNodeHashtable);
+ }
}
/** we search the nodes who should have a parent but
haven't **/