Browse Source

Fix some crazy concurrency in ErrorTableModel

Fixes CLIENT-4

Change-Id: If182e71e72acc048d0474fa6f48d3c0a8ba0f57a
Reviewed-on: http://gerrit.dmdirc.com/1590
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Local Commits <dmdirc@googlemail.com>
tags/0.6.5
Chris Smith 13 years ago
parent
commit
6ae9262d10
1 changed files with 8 additions and 12 deletions
  1. 8
    12
      src/com/dmdirc/addons/ui_swing/dialogs/error/ErrorTableModel.java

+ 8
- 12
src/com/dmdirc/addons/ui_swing/dialogs/error/ErrorTableModel.java View File

@@ -73,8 +73,10 @@ public final class ErrorTableModel extends AbstractTableModel implements
73 73
      * @param errors List of errors
74 74
      */
75 75
     public void setErrors(final List<ProgramError> errors) {
76
-        this.errors.clear();
77
-        this.errors.addAll(errors);
76
+        synchronized (errors) {
77
+            this.errors.clear();
78
+            this.errors.addAll(errors);
79
+        }
78 80
 
79 81
         fireTableDataChanged();
80 82
     }
@@ -82,9 +84,7 @@ public final class ErrorTableModel extends AbstractTableModel implements
82 84
     /** {@inheritDoc} */
83 85
     @Override
84 86
     public int getRowCount() {
85
-        synchronized (errors) {
86
-            return errors.size();
87
-        }
87
+        return errors.size();
88 88
     }
89 89
 
90 90
     /** {@inheritDoc} */
@@ -255,9 +255,7 @@ public final class ErrorTableModel extends AbstractTableModel implements
255 255
             /** {@inheritDoc} */
256 256
             @Override
257 257
             public void run() {
258
-                synchronized (ErrorTableModel.this) {
259
-                    addRow(error);
260
-                }
258
+                addRow(error);
261 259
             }
262 260
         });
263 261
     }
@@ -270,9 +268,7 @@ public final class ErrorTableModel extends AbstractTableModel implements
270 268
             /** {@inheritDoc} */
271 269
             @Override
272 270
             public void run() {
273
-                synchronized (ErrorTableModel.this) {
274
-                    removeRow(error);
275
-                }
271
+                removeRow(error);
276 272
             }
277 273
         });
278 274
     }
@@ -285,7 +281,7 @@ public final class ErrorTableModel extends AbstractTableModel implements
285 281
             /** {@inheritDoc} */
286 282
             @Override
287 283
             public void run() {
288
-                synchronized (ErrorTableModel.this) {
284
+                synchronized (errors) {
289 285
                     final int errorRow = indexOf(error);
290 286
                     if (errorRow != -1 && errorRow < getRowCount()) {
291 287
                         fireTableRowsUpdated(errorRow, errorRow);

Loading…
Cancel
Save