From 4ed09dd7e17bc3c33c57d15a7d78bf0a4bae7d82 Mon Sep 17 00:00:00 2001 From: Taylor Smock Date: Tue, 14 Jul 2020 11:39:17 -0600 Subject: [PATCH] FIXUP: Spotbugs Signed-off-by: Taylor Smock --- .../mapwithai/backend/GetDataRunnable.java | 4 +-- .../mapwithai/backend/MapWithAILayer.java | 3 ++- .../data/mapwithai/MapWithAICategory.java | 3 ++- .../data/mapwithai/MapWithAIInfo.java | 3 ++- .../data/mapwithai/MapWithAILayerInfo.java | 25 +++++++++++-------- .../mapwithai/AddMapWithAIPanel.java | 2 +- .../mapwithai/MapWithAIProvidersPanel.java | 1 - .../io/mapwithai/ESRISourceReader.java | 7 ++++-- 8 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/GetDataRunnable.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/GetDataRunnable.java index fc8543e..78dd120 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/GetDataRunnable.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/GetDataRunnable.java @@ -53,7 +53,7 @@ import org.openstreetmap.josm.tools.Pair; */ public class GetDataRunnable extends RecursiveTask { private static final long serialVersionUID = 258423685658089715L; - private final List bbox; + private final transient List bbox; private final transient DataSet dataSet; private final transient ProgressMonitor monitor; private static final float DEGREE_BUFFER = 0.001f; @@ -61,7 +61,7 @@ public class GetDataRunnable extends RecursiveTask { private static final int MAX_LONGITUDE = 180; private Integer maximumDimensions; - private MapWithAIInfo info; + private transient MapWithAIInfo info; private static final int MAX_NUMBER_OF_BBOXES_TO_PROCESS = 1; private static final String SERVER_ID_KEY = "current_id"; diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java index bc5494b..3ad8cdf 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/backend/MapWithAILayer.java @@ -6,6 +6,7 @@ import static org.openstreetmap.josm.tools.I18n.tr; import java.awt.Component; import java.awt.event.ActionEvent; import java.io.File; +import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -238,7 +239,7 @@ public class MapWithAILayer extends OsmDataLayer implements ActiveLayerChangeLis } } - private static class OsmComparator implements Comparator { + private static class OsmComparator implements Comparator, Serializable { final Collection previousSelection; public OsmComparator(Collection previousSelection) { diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAICategory.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAICategory.java index 0178953..59d525e 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAICategory.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAICategory.java @@ -3,6 +3,7 @@ package org.openstreetmap.josm.plugins.mapwithai.data.mapwithai; import static org.openstreetmap.josm.tools.I18n.marktr; +import java.io.Serializable; import java.util.Collections; import java.util.Comparator; import java.util.EnumMap; @@ -22,7 +23,7 @@ import org.openstreetmap.josm.tools.ImageProvider.ImageSizes; * @author Taylor Smock * */ -public enum MapWithAICategory implements ISourceCategory { +public enum MapWithAICategory implements ISourceCategory, Serializable { BUILDING("data/closedway", "buildings", marktr("Buildings")), HIGHWAY("presets/transport/way/way_road", "highways", marktr("Roads")), diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAIInfo.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAIInfo.java index 7ae5ac8..1f6d6b9 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAIInfo.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAIInfo.java @@ -3,6 +3,7 @@ package org.openstreetmap.josm.plugins.mapwithai.data.mapwithai; import static org.openstreetmap.josm.tools.I18n.tr; +import java.io.Serializable; import java.io.StringReader; import java.util.ArrayList; import java.util.Collections; @@ -120,7 +121,7 @@ public class MapWithAIInfo extends } } - public static class MapWithAIInfoCategoryComparator implements Comparator { + public static class MapWithAIInfoCategoryComparator implements Comparator, Serializable { @Override public int compare(MapWithAIInfo o1, MapWithAIInfo o2) { diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAILayerInfo.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAILayerInfo.java index 99453f9..15614e1 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAILayerInfo.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/data/mapwithai/MapWithAILayerInfo.java @@ -69,20 +69,23 @@ public class MapWithAILayerInfo { private static MapWithAILayerInfo instance; public static MapWithAILayerInfo getInstance() { + AtomicBoolean finished; synchronized (DEFAULT_LAYER_SITES) { if (instance == null) { - AtomicBoolean finished = new AtomicBoolean(); + finished = new AtomicBoolean(); instance = new MapWithAILayerInfo(() -> finished.set(true)); - // Avoid a deadlock in the EDT. - if (!SwingUtilities.isEventDispatchThread()) { - while (!finished.get()) { - try { - Thread.sleep(100); - } catch (InterruptedException e) { - Logging.error(e); - Thread.currentThread().interrupt(); - } - } + } else { + finished = null; + } + } + // Avoid a deadlock in the EDT. + if (finished != null && !SwingUtilities.isEventDispatchThread()) { + while (!finished.get()) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + Logging.error(e); + Thread.currentThread().interrupt(); } } } diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/AddMapWithAIPanel.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/AddMapWithAIPanel.java index 938b67b..01659a8 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/AddMapWithAIPanel.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/AddMapWithAIPanel.java @@ -61,7 +61,7 @@ class AddMapWithAIPanel extends JPanel { private TimeUnit currentUnit; private MapWithAIType type; - private MapWithAIInfo info; + private transient MapWithAIInfo info; private JComboBox typeBox; protected AddMapWithAIPanel(LayoutManager layout) { diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIProvidersPanel.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIProvidersPanel.java index b8f40d5..fd48dbc 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIProvidersPanel.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/gui/preferences/mapwithai/MapWithAIProvidersPanel.java @@ -442,7 +442,6 @@ public class MapWithAIProvidersPanel extends JPanel { int tenXWidth = defaultTable.getFontMetrics(defaultTable.getFont()).stringWidth("XXXXXXXXXX"); TableColumnModel mod = defaultTable.getColumnModel(); int urlWidth = (showActive ? 3 : 0) * tenXWidth; - mod.getColumns(); mod.getColumn(6).setCellRenderer(defaultTable.getDefaultRenderer(Boolean.class)); mod.getColumn(6).setMaxWidth(20); mod.getColumn(5).setMaxWidth((!showActive ? 1 : 0) * tenXWidth); diff --git a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/io/mapwithai/ESRISourceReader.java b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/io/mapwithai/ESRISourceReader.java index f56f1e0..597bff3 100644 --- a/src/main/java/org/openstreetmap/josm/plugins/mapwithai/io/mapwithai/ESRISourceReader.java +++ b/src/main/java/org/openstreetmap/josm/plugins/mapwithai/io/mapwithai/ESRISourceReader.java @@ -12,6 +12,7 @@ import java.util.Map; import java.util.Objects; import java.util.regex.Pattern; import java.util.stream.Collectors; + import javax.json.Json; import javax.json.JsonArray; import javax.json.JsonNumber; @@ -20,6 +21,7 @@ import javax.json.JsonReader; import javax.json.JsonString; import javax.json.JsonStructure; import javax.json.JsonValue; + import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryBounds; import org.openstreetmap.josm.io.CachedFile; import org.openstreetmap.josm.plugins.mapwithai.data.mapwithai.MapWithAICategory; @@ -35,7 +37,7 @@ import org.openstreetmap.josm.tools.Utils; */ public class ESRISourceReader implements Closeable { private final MapWithAIInfo source; - private CachedFile cachedFile; + private List cachedFiles = new ArrayList<>(); private boolean fastFail; private final List ignoreConflationCategories; private static final String JSON_QUERY_PARAM = "?f=json"; @@ -85,6 +87,7 @@ public class ESRISourceReader implements Closeable { try (CachedFile layers = new CachedFile(url + "content/groups/" + group + searchUrl); BufferedReader i = layers.getContentReader(); JsonReader reader = Json.createReader(i)) { + cachedFiles.add(layers); layers.setFastFail(fastFail); JsonStructure parser = reader.read(); if (parser.getValueType() == JsonValue.ValueType.OBJECT) { @@ -215,7 +218,7 @@ public class ESRISourceReader implements Closeable { @Override public void close() throws IOException { - Utils.close(cachedFile); + cachedFiles.forEach(Utils::close); } }