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 **/


Reply via email to