From 4ea716be6c1bfefb6c1a773f4f031bf98c7179c8 Mon Sep 17 00:00:00 2001 From: Lucas Alber Date: Wed, 27 Feb 2019 15:27:19 +0100 Subject: [PATCH] TextArea may not be thread-safe --- src/main/java/org/lalber/tools/exifrotation/Main.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/lalber/tools/exifrotation/Main.java b/src/main/java/org/lalber/tools/exifrotation/Main.java index c3240dd..12b74c4 100644 --- a/src/main/java/org/lalber/tools/exifrotation/Main.java +++ b/src/main/java/org/lalber/tools/exifrotation/Main.java @@ -32,7 +32,7 @@ public class Main { JPanel mainPanel = new JPanel(); mainPanel.setBorder(new TitledBorder(new EtchedBorder(), "Process:")); - JTextArea textArea = new JTextArea(16, 58); + final JTextArea textArea = new JTextArea(16, 58); textArea.setEditable(false); JScrollPane scroll = new JScrollPane(textArea); scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); @@ -71,7 +71,9 @@ public class Main { .parallelStream() .forEach(p -> { if (aborted) return; - textArea.append("Processing: " + p.getFileName().toString() + "\n"); + synchronized (textArea) { + textArea.append("Processing: " + p.getFileName().toString() + "\n"); + } Image img = new Image(p.toFile()); img.rotate(); img.saveAs(p.toFile());