Subject: [PATCH] General
---
Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java b/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java
--- a/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java	(date 1679257200918)
@@ -130,7 +130,7 @@
             } else if (o instanceof Exception) {
                 return ExceptionUtil.explainException((Exception) o).replace("<html>", "").replace("</html>", "");
             } else {
-                return (String) null;
+                return null;
             }
         }).filter(Objects::nonNull).collect(Collectors.toList());
     }
Index: src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java b/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java
--- a/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/actions/AddImageryLayerAction.java	(date 1679257200930)
@@ -291,7 +291,7 @@
 
         final String url = wms.buildGetMapUrl(
                 selection.layers.stream().map(LayerDetails::getName).collect(Collectors.toList()),
-                (List<String>) null,
+                null,
                 selection.format,
                 selection.transparent
                 );
Index: src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java
--- a/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/data/osm/visitor/paint/MapRendererFactory.java	(date 1679257200958)
@@ -292,7 +292,7 @@
     public AbstractMapRenderer createActiveRenderer(Graphics2D g, NavigatableComponent viewport, boolean isInactiveMode) {
         try {
             Constructor<?> c = activeRenderer.getConstructor(Graphics2D.class, NavigatableComponent.class, boolean.class);
-            return AbstractMapRenderer.class.cast(c.newInstance(g, viewport, isInactiveMode));
+            return (AbstractMapRenderer) c.newInstance(g, viewport, isInactiveMode);
         } catch (ReflectiveOperationException | IllegalArgumentException e) {
             throw new MapRendererFactoryException(e);
         }
Index: src/org/openstreetmap/josm/data/ImageData.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/data/ImageData.java b/src/org/openstreetmap/josm/data/ImageData.java
--- a/src/org/openstreetmap/josm/data/ImageData.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/data/ImageData.java	(date 1679257201046)
@@ -247,7 +247,7 @@
      */
     public void removeImageToSelection(ImageEntry image) {
         int index = data.indexOf(image);
-        selectedImagesIndex.remove(selectedImagesIndex.indexOf(index));
+        selectedImagesIndex.remove((Integer) index);
         if (selectedImagesIndex.isEmpty()) {
             selectedImagesIndex.add(-1);
         }
Index: src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java b/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
--- a/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(date 1679257201114)
@@ -417,7 +417,9 @@
         this.data.mergeFrom(l.getImageData());
 
         setName(l.getName());
-        thumbsLoaded &= l.thumbsLoaded;
+        synchronized (l) {
+            thumbsLoaded &= l.thumbsLoaded;
+        }
     }
 
     private static Dimension scaledDimension(Image thumb) {
Index: src/org/openstreetmap/josm/gui/layer/AutosaveTask.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/layer/AutosaveTask.java b/src/org/openstreetmap/josm/gui/layer/AutosaveTask.java
--- a/src/org/openstreetmap/josm/gui/layer/AutosaveTask.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/layer/AutosaveTask.java	(date 1679257201130)
@@ -394,7 +394,7 @@
     public List<File> getUnsavedLayersFiles() {
         List<File> result = new ArrayList<>();
         try {
-            File[] files = autosaveDir.listFiles((FileFilter)
+            File[] files = autosaveDir.listFiles(
                     pathname -> OsmImporter.FILE_FILTER.accept(pathname) || NoteImporter.FILE_FILTER.accept(pathname));
             if (files == null)
                 return result;
Index: src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(date 1679257201138)
@@ -829,7 +829,7 @@
          * @return {@code true} if the object is an unclosed multipolygon
          */
         static boolean unclosed_multipolygon(Environment e) {
-            return e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon() &&
+            return e.osm instanceof Relation && e.osm.isMultipolygon() &&
                     !e.osm.isIncomplete() && !((Relation) e.osm).hasIncompleteMembers() &&
                     !MultipolygonCache.getInstance().get((Relation) e.osm).getOpenEnds().isEmpty();
         }
Index: src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(date 1679257201142)
@@ -453,7 +453,7 @@
         public Object evaluate(final Environment env) {
             List<?> l = Cascade.convertTo(args.get(0).evaluate(env), List.class);
             if (args.size() != 1 || l == null)
-                l = Utils.transform(args, (Function<Expression, Object>) x -> x.evaluate(env));
+                l = Utils.transform(args, x -> x.evaluate(env));
             return aggregateList(l);
         }
     }
Index: src/org/openstreetmap/josm/gui/preferences/imagery/AddWMSLayerPanel.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/preferences/imagery/AddWMSLayerPanel.java b/src/org/openstreetmap/josm/gui/preferences/imagery/AddWMSLayerPanel.java
--- a/src/org/openstreetmap/josm/gui/preferences/imagery/AddWMSLayerPanel.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/preferences/imagery/AddWMSLayerPanel.java	(date 1679257201154)
@@ -155,7 +155,7 @@
         if (wms != null && wms.buildRootUrl() != null) {
             wmsUrl.setText(wms.buildGetMapUrl(
                     tree.getSelectedLayers().stream().map(LayerDetails::getName).collect(Collectors.toList()),
-                    (List<String>) null,
+                    null,
                     (String) formats.getSelectedItem(),
                     true // TODO: ask user about transparency
                 )
Index: src/org/openstreetmap/josm/gui/preferences/projection/GaussKruegerProjectionChoice.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/preferences/projection/GaussKruegerProjectionChoice.java b/src/org/openstreetmap/josm/gui/preferences/projection/GaussKruegerProjectionChoice.java
--- a/src/org/openstreetmap/josm/gui/preferences/projection/GaussKruegerProjectionChoice.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/preferences/projection/GaussKruegerProjectionChoice.java	(date 1679257201162)
@@ -26,7 +26,7 @@
 
     @Override
     public String getCurrentCode() {
-        return "EPSG:"+Integer.toString(31466 + index);
+        return "EPSG:"+ (31466 + index);
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/preferences/projection/LambertCC9ZonesProjectionChoice.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/preferences/projection/LambertCC9ZonesProjectionChoice.java b/src/org/openstreetmap/josm/gui/preferences/projection/LambertCC9ZonesProjectionChoice.java
--- a/src/org/openstreetmap/josm/gui/preferences/projection/LambertCC9ZonesProjectionChoice.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/preferences/projection/LambertCC9ZonesProjectionChoice.java	(date 1679257201162)
@@ -56,7 +56,7 @@
 
     @Override
     public String getCurrentCode() {
-        return "EPSG:" + Integer.toString(3942+index); //CC42 is EPSG:3942 (up to EPSG:3950 for CC50)
+        return "EPSG:" + (3942 + index); //CC42 is EPSG:3942 (up to EPSG:3950 for CC50)
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/preferences/projection/LambertProjectionChoice.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/preferences/projection/LambertProjectionChoice.java b/src/org/openstreetmap/josm/gui/preferences/projection/LambertProjectionChoice.java
--- a/src/org/openstreetmap/josm/gui/preferences/projection/LambertProjectionChoice.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/preferences/projection/LambertProjectionChoice.java	(date 1679257201166)
@@ -51,7 +51,7 @@
 
     @Override
     public String getCurrentCode() {
-        return "EPSG:" + Integer.toString(27561+index);
+        return "EPSG:" + (27561 + index);
     }
 
     @Override
Index: src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManager.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManager.java b/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManager.java
--- a/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManager.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManager.java	(date 1679265149337)
@@ -14,7 +14,6 @@
 import java.util.Map.Entry;
 import java.util.Objects;
 import java.util.Set;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import org.openstreetmap.josm.data.osm.DataSet;
@@ -41,7 +40,6 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset;
 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
-import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.MultiMap;
 import org.openstreetmap.josm.tools.Utils;
@@ -293,7 +291,7 @@
         if (r != null && !Utils.isEmpty(presets)) {
             for (TaggingPreset tp : presets) {
                 if (tp.roles != null) {
-                    list.add(Utils.transform(tp.roles.roles, (Function<Role, String>) x -> x.key), AutoCompletionPriority.IS_IN_STANDARD);
+                    list.add(Utils.transform(tp.roles.roles, x -> x.key), AutoCompletionPriority.IS_IN_STANDARD);
                 }
             }
             list.add(r.getMemberRoles(), AutoCompletionPriority.IS_IN_DATASET);
Index: src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java b/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java
--- a/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/gui/tagging/presets/items/Text.java	(date 1679257201194)
@@ -78,9 +78,7 @@
         List<String> keys = new ArrayList<>();
         keys.add(key);
         if (alternative_autocomplete_keys != null) {
-            for (String k : alternative_autocomplete_keys.split(",", -1)) {
-                keys.add(k);
-            }
+            Collections.addAll(keys, alternative_autocomplete_keys.split(",", -1));
         }
         getAllForKeys(keys).forEach(model::addElement);
 
Index: src/org/openstreetmap/josm/tools/HiDPISupport.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/tools/HiDPISupport.java b/src/org/openstreetmap/josm/tools/HiDPISupport.java
--- a/src/org/openstreetmap/josm/tools/HiDPISupport.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/tools/HiDPISupport.java	(date 1679257201378)
@@ -223,7 +223,7 @@
             return processor.apply(imgs);
         }
         List<List<Image>> allVars = imgs.stream().map(HiDPISupport::getResolutionVariants).collect(Collectors.toList());
-        int maxVariants = allVars.stream().mapToInt(List<Image>::size).max().getAsInt();
+        int maxVariants = allVars.stream().mapToInt(List::size).max().getAsInt();
         if (maxVariants == 1)
             return processor.apply(imgs);
         List<Image> imgsProcessed = IntStream.range(0, maxVariants)
Index: src/org/openstreetmap/josm/tools/Territories.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/tools/Territories.java b/src/org/openstreetmap/josm/tools/Territories.java
--- a/src/org/openstreetmap/josm/tools/Territories.java	(revision 18694)
+++ b/src/org/openstreetmap/josm/tools/Territories.java	(date 1679265127405)
@@ -199,8 +199,8 @@
                 if (event == Event.START_OBJECT) {
                     for (JsonValue feature : json.getObject().getJsonArray("features")) {
                         ofNullable(feature.asJsonObject().getJsonObject("properties")).ifPresent(props ->
-                        ofNullable(props.getJsonObject("urls")).ifPresent(urls ->
-                        ofNullable(urls.getString(TAGINFO)).ifPresent(taginfo -> {
+                        ofNullable(props.getJsonObject("urls")).flatMap(urls ->
+                        ofNullable(urls.getString(TAGINFO))).ifPresent(taginfo -> {
                             JsonArray iso1 = props.getJsonArray(ISO3166_1_LC);
                             JsonArray iso2 = props.getJsonArray(ISO3166_2_LC);
                             if (iso1 != null) {
@@ -208,7 +208,7 @@
                             } else if (iso2 != null) {
                                 readExternalTaginfo(taginfoGeofabrikCache, taginfo, iso2, source);
                             }
-                        })));
+                        }));
                     }
                 }
             }
Index: test/unit/org/openstreetmap/josm/testutils/mockers/ExtendedDialogMocker.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/test/unit/org/openstreetmap/josm/testutils/mockers/ExtendedDialogMocker.java b/test/unit/org/openstreetmap/josm/testutils/mockers/ExtendedDialogMocker.java
--- a/test/unit/org/openstreetmap/josm/testutils/mockers/ExtendedDialogMocker.java	(revision 18694)
+++ b/test/unit/org/openstreetmap/josm/testutils/mockers/ExtendedDialogMocker.java	(date 1679265149341)
@@ -12,14 +12,13 @@
 import java.util.Optional;
 import java.util.WeakHashMap;
 
+import mockit.Invocation;
+import mockit.Mock;
 import org.junit.platform.commons.util.ReflectionUtils;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.tools.Logging;
 
-import mockit.Invocation;
-import mockit.Mock;
-
 /**
  * MockUp for {@link ExtendedDialog} allowing a test to pre-seed uses of {@link ExtendedDialog}
  * with mock "responses". This works best with {@link ExtendedDialog}s which have their contents set
@@ -214,13 +213,13 @@
         final ExtendedDialog retval = invocation.proceed(message);
         // must set this *after* the regular invocation else that will fall through to
         // setContent(Component, boolean) which would overwrite it (with null)
-        this.simpleStringContentMemo.put((ExtendedDialog) invocation.getInvokedInstance(), message);
+        this.simpleStringContentMemo.put(invocation.getInvokedInstance(), message);
         return retval;
     }
 
     @Mock
     private ExtendedDialog setContent(final Invocation invocation, final Component content, final boolean placeContentInScrollPane) {
-        this.simpleStringContentMemo.put((ExtendedDialog) invocation.getInvokedInstance(), null);
+        this.simpleStringContentMemo.put(invocation.getInvokedInstance(), null);
         return invocation.proceed(content, placeContentInScrollPane);
     }
 }
