Author: jflesch
Date: 2007-08-03 01:17:29 +0000 (Fri, 03 Aug 2007)
New Revision: 14472
Modified:
trunk/apps/Thaw/src/thaw/plugins/miniFrost/BoardTree.java
trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
Log:
Synchronize the access to the board list and to the message list (once again to
try to prevent a possible freeze)
Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/BoardTree.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/BoardTree.java 2007-08-02
22:07:29 UTC (rev 14471)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/BoardTree.java 2007-08-03
01:17:29 UTC (rev 14472)
@@ -204,7 +204,9 @@
}
public Vector getBoardList() {
- return boardList;
+ synchronized(boardList) {
+ return boardList;
+ }
}
public void setBoardList(Vector l) {
@@ -216,17 +218,21 @@
boardList = l;
- if (boardList.size() < oldSize)
- fireIntervalRemoved(this, boardList.size(),
oldSize);
+ synchronized(boardList) {
+ if (boardList.size() < oldSize)
+ fireIntervalRemoved(this,
boardList.size(), oldSize);
- if (boardList.size() > oldSize)
- fireIntervalAdded(this, oldSize,
boardList.size());
+ if (boardList.size() > oldSize)
+ fireIntervalAdded(this, oldSize,
boardList.size());
- fireContentsChanged(this, 0, boardList.size());
+ fireContentsChanged(this, 0, boardList.size());
+ }
}
public void refresh(Board board) {
- refresh(boardList.indexOf(board));
+ synchronized(boardList) {
+ refresh(boardList.indexOf(board));
+ }
}
public void refresh(int row) {
@@ -237,14 +243,18 @@
if (boardList == null)
return null;
- return boardList.get(index);
+ synchronized(boardList) {
+ return boardList.get(index);
+ }
}
public int getSize() {
if (boardList == null)
return 0;
- return boardList.size();
+ synchronized(boardList) {
+ return boardList.size();
+ }
}
}
Modified: trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
===================================================================
--- trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
2007-08-02 22:07:29 UTC (rev 14471)
+++ trunk/apps/Thaw/src/thaw/plugins/miniFrost/MessageTreeTable.java
2007-08-03 01:17:29 UTC (rev 14472)
@@ -381,7 +381,9 @@
}
public Enumeration children() {
- return children.elements();
+ synchronized(children) { /* yep, quite useless */
+ return children.elements();
+ }
}
public boolean getAllowsChildren() {
@@ -389,15 +391,21 @@
}
public TreeNode getChildAt(int childIndex) {
- return (MessageNode)children.get(childIndex);
+ synchronized(children) {
+ return (MessageNode)children.get(childIndex);
+ }
}
public int getChildCount() {
- return children.size();
+ synchronized(children) {
+ return children.size();
+ }
}
public int getIndex(TreeNode node) {
- return children.indexOf(node);
+ synchronized(children) {
+ return children.indexOf(node);
+ }
}
public TreeNode getParent() {
@@ -405,7 +413,9 @@
}
public boolean isLeaf() {
- return (children.size() == 0);
+ synchronized(children) {
+ return (children.size() == 0);
+ }
}
}
@@ -455,11 +465,15 @@
}
public void registerChild(MessageNode node) {
- children.insertElementAt(node, 0);
+ synchronized(children) {
+ children.insertElementAt(node, 0);
+ }
}
public java.util.Enumeration children() {
- return children.elements();
+ synchronized(children) {
+ return children.elements();
+ }
}
public boolean getAllowsChildren() {
@@ -467,15 +481,21 @@
}
public TreeNode getChildAt(int childIndex) {
- return (MessageNode)children.get(childIndex);
+ synchronized(children) {
+ return (MessageNode)children.get(childIndex);
+ }
}
public int getChildCount() {
- return children.size();
+ synchronized(children) {
+ return children.size();
+ }
}
public int getIndex(TreeNode node) {
- return children.indexOf(node);
+ synchronized(children) {
+ return children.indexOf(node);
+ }
}
public TreeNode getParent() {
@@ -483,7 +503,9 @@
}
public boolean isLeaf() {
- return (children.size() == 0);
+ synchronized(children) {
+ return (children.size() == 0);
+ }
}
public String toString() {
@@ -591,7 +613,9 @@
public int getRowCount() {
if (msgs == null) return 0;
- return msgs.size();
+ synchronized(msgs) {
+ return msgs.size();
+ }
}
public int getColumnCount() {
@@ -603,7 +627,9 @@
}
public Message getMsg(int row) {
- return ((MessageNode)msgs.get(row)).getMessage();
+ synchronized(msgs) {
+ return
((MessageNode)msgs.get(row)).getMessage();
+ }
}
public Object getValueAt(int row, int column) {
@@ -612,11 +638,17 @@
}
if (column == 1) {
- return (MessageNode)msgs.get(row);
+ synchronized(msgs) {
+ return (MessageNode)msgs.get(row);
+ }
}
- Message msg = ((MessageNode)msgs.get(row)).getMessage();
+ Message msg;
+ synchronized(msgs) {
+ msg = ((MessageNode)msgs.get(row)).getMessage();
+ }
+
if (msg == null)
return "(?)";
@@ -642,8 +674,12 @@
public void setMessages(Vector msgs) {
this.msgs = msgs;
- int lng = msgs.size();
+ int lng = 0;
+ synchronized(msgs) {
+ lng = msgs.size();
+ }
+
selection = new boolean[lng];
for (int i = 0 ; i < lng ; i++)
@@ -652,11 +688,13 @@
public void setSelectedAll(boolean s) {
- for (int i = 0 ; i < selection.length ; i++) {
- Message msg =
((MessageNode)msgs.get(i)).getMessage();
+ synchronized(msgs) {
+ for (int i = 0 ; i < selection.length ; i++) {
+ Message msg =
((MessageNode)msgs.get(i)).getMessage();
- if (msg != null)
- selection[i] = s;
+ if (msg != null)
+ selection[i] = s;
+ }
}
}
@@ -667,8 +705,12 @@
public void switchSelection(int row) {
- Message msg = ((MessageNode)msgs.get(row)).getMessage();
+ Message msg = null;
+ synchronized(msgs) {
+ msg = ((MessageNode)msgs.get(row)).getMessage();
+ }
+
if (msg != null)
selection[row] = !selection[row];
else