changeset 895:d2563e68c74a

Get rid of ConcurrentModificationException in Console output.
author Jiri Vanek <jvanek@redhat.com>
date Thu, 13 Feb 2014 12:56:17 +0100
parents 14ed5b5d8ccd
children db83ddf35fc0
files ChangeLog netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPaneModel.java
diffstat 2 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Feb 13 12:52:42 2014 +0100
+++ b/ChangeLog	Thu Feb 13 12:56:17 2014 +0100
@@ -1,3 +1,9 @@
+2014-02-13  Jiri Vanek  <jvanek@redhat.com>
+
+	Get rid of ConcurrentModificationException in Console output.
+	* netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPaneModel.java: (importList)
+	now	synchronise over original data, instead of (somtimes by) copy as, wrongly, before.
+
 2014-02-13  Jiri Vanek  <jvanek@redhat.com>
 
 	Added possibility to follow redirects for javaws in demand by
--- a/netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPaneModel.java	Thu Feb 13 12:52:42 2014 +0100
+++ b/netx/net/sourceforge/jnlp/util/logging/ConsoleOutputPaneModel.java	Thu Feb 13 12:56:17 2014 +0100
@@ -142,10 +142,12 @@
         }
 
         List<MessageWithHeader> sortedList;
-        if (start == 0) {
-            sortedList = preSort(dataProvider.getData(), sortByLocal);
-        } else {
-            sortedList = preSort(Collections.synchronizedList(dataProvider.getData().subList(start, dataProvider.getData().size())), sortByLocal);
+        synchronized (dataProvider.getData()) {
+            if (start == 0) {
+                sortedList = preSort(dataProvider.getData(), sortByLocal);
+            } else {
+                sortedList = preSort(Collections.synchronizedList(dataProvider.getData().subList(start, dataProvider.getData().size())), sortByLocal);
+            }
         }
         lastUpdateIndex = dataProvider.getData().size();