Index: trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java	(revision 19629)
@@ -70,5 +70,5 @@
         updateEnabledStateOnModifiableSelection(selection);
         if (isEnabled() && !Utils.isEmpty(selection)
-                && DownloadPolicy.BLOCKED.equals(selection.iterator().next().getDataSet().getDownloadPolicy())) {
+                && selection.iterator().next().getDataSet().getDownloadPolicy() == DownloadPolicy.BLOCKED) {
             setEnabled(false);
         }
Index: trunk/src/org/openstreetmap/josm/actions/JumpToAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/JumpToAction.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/actions/JumpToAction.java	(revision 19629)
@@ -174,5 +174,5 @@
 
             if (option != 1) return;
-            if (place.hasFocus() && !place.getText().trim().isEmpty()) {
+            if (place.hasFocus() && !place.getText().isBlank()) {
                 try {
                     List<NameFinder.SearchResult> searchResults = NameFinder.queryNominatim(place.getText());
Index: trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java	(revision 19629)
@@ -10,5 +10,4 @@
 import java.nio.file.Files;
 import java.time.Instant;
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -350,10 +349,4 @@
             return getExifInstant();
         return null;
-    }
-
-    private static Date getDefensiveDate(Instant date) {
-        if (date == null)
-            return null;
-        return Date.from(date);
     }
 
Index: trunk/src/org/openstreetmap/josm/data/projection/proj/ClassProjFactory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/proj/ClassProjFactory.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/projection/proj/ClassProjFactory.java	(revision 19629)
@@ -21,5 +21,5 @@
     @Override
     public Proj createInstance() {
-        Proj proj = null;
+        Proj proj;
         try {
             proj = projClass.getConstructor().newInstance();
Index: trunk/src/org/openstreetmap/josm/data/sources/ISourceType.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/sources/ISourceType.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/sources/ISourceType.java	(revision 19629)
@@ -9,5 +9,4 @@
  * @since 16545
  */
-@SuppressWarnings("PMD.ImplicitFunctionalInterface")
 public interface ISourceType<T extends Enum<T>> extends ICommonSource<T> {
     /**
Index: trunk/src/org/openstreetmap/josm/data/validation/routines/InetAddressValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/routines/InetAddressValidator.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/validation/routines/InetAddressValidator.java	(revision 19629)
@@ -102,5 +102,5 @@
             }
 
-            int iIpSegment = 0;
+            int iIpSegment;
 
             try {
@@ -181,5 +181,5 @@
                     return false;
                 }
-                int octetInt = 0;
+                int octetInt;
                 try {
                     octetInt = Integer.parseInt(octet, BASE_16);
Index: trunk/src/org/openstreetmap/josm/data/validation/routines/UrlValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/routines/UrlValidator.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/validation/routines/UrlValidator.java	(revision 19629)
@@ -425,5 +425,5 @@
         }
 
-        return Optional.ofNullable(authorityMatcher.group(PARSE_AUTHORITY_EXTRA)).orElse("").trim().isEmpty();
+        return Optional.ofNullable(authorityMatcher.group(PARSE_AUTHORITY_EXTRA)).orElse("").isBlank();
     }
 
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 19629)
@@ -287,4 +287,5 @@
      * @since 18365 (public, primarily for ValidatorCLI)
      */
+    @SuppressWarnings("PMD.UseTryWithResources") // zip.a is closed via Utils.close(), which swallows IOException
     public synchronized ParseResult addMapCSS(String url, Consumer<String> assertionConsumer) throws ParseException, IOException {
         CheckParameterUtil.ensureParameterNotNull(url, "url");
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 19629)
@@ -102,5 +102,5 @@
     @Override
     public void visit(Node n) {
-        if (!n.isConnectionNode() || n.referrers(Way.class).noneMatch(w -> isPowerLineOrCable(w)))
+        if (!n.isConnectionNode() || n.referrers(Way.class).noneMatch(PowerLines::isPowerLineOrCable))
             return;
 
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 19629)
@@ -1024,5 +1024,5 @@
             withErrors.put(p, "LV");
         }
-        if (value.trim().isEmpty() && !withErrors.contains(p, "EV")) {
+        if (value.isBlank() && !withErrors.contains(p, "EV")) {
             errors.add(TestError.builder(this, Severity.WARNING, EMPTY_VALUES)
                     .message(tr("Tags with empty values"), s, key)
Index: trunk/src/org/openstreetmap/josm/data/vector/VectorPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/vector/VectorPrimitive.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/data/vector/VectorPrimitive.java	(revision 19629)
@@ -99,4 +99,5 @@
     }
 
+    @Override
     public void clearCachedStyle() {
         this.mappaintStyle.clear();
Index: trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 19629)
@@ -145,5 +145,5 @@
             NavigableSet<Integer> values = getNumericValues();
             // Make sure current auto filter buttons remain visible even if no data is found, to allow user to disable them
-            for (var currentAutoFilter : currentAutoFilters) {
+            for (AutoFilter currentAutoFilter : currentAutoFilters) {
                 if (currentAutoFilter.getFilter().value != null) {
                     values.add(currentAutoFilter.getFilter().value);
@@ -289,5 +289,5 @@
         final AutoFilterButton keyButton = AutoFilterButton.forOsmKey(enabledRule.getKey());
         addButton(keyButton, Integer.MIN_VALUE, i++);
-        var valueList = new ArrayList<>(values.descendingSet());
+        List<Integer> valueList = new ArrayList<>(values.descendingSet());
         if (enabledRule.getNoValueFilter()) {
             valueList.add(null);
@@ -331,5 +331,5 @@
         BBox bbox = MainApplication.getMap().mapView.getState().getViewArea().getLatLonBoundsBox().toBBox();
         NavigableSet<Integer> values = new TreeSet<>();
-        for (var primitiveList : List.of(ds.searchNodes(bbox), ds.searchWays(bbox), ds.searchRelations(bbox))) {
+        for (List<? extends OsmPrimitive> primitiveList : List.of(ds.searchNodes(bbox), ds.searchWays(bbox), ds.searchRelations(bbox))) {
             // add all values that are directly mentioned
             primitiveList.forEach(o -> enabledRule.getTagValuesForPrimitive(o, true).forEach(values::add));
Index: trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterRule.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterRule.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterRule.java	(revision 19629)
@@ -49,5 +49,5 @@
     private IntFunction<String> valueFormatter = Integer::toString;
 
-    private boolean noValueFilter = false;
+    private boolean noValueFilter;
 
     /** The union of {@link #key} and the keys provided by {@link #setExtraKeys(List)}. */
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/PasteTagsConflictResolverDialog.java	(revision 19629)
@@ -18,5 +18,4 @@
 import java.util.ArrayList;
 import java.util.EnumMap;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -165,6 +164,6 @@
         mode = Mode.RESOLVING_ONE_TAGCOLLECTION_ONLY;
         tagsForAllPrimitives = tagsForAllPrimitives == null ? new TagCollection() : tagsForAllPrimitives;
-        sourceStatistics = sourceStatistics == null ? new HashMap<>() : sourceStatistics;
-        targetStatistics = targetStatistics == null ? new HashMap<>() : targetStatistics;
+        sourceStatistics = sourceStatistics == null ? new EnumMap<>(OsmPrimitiveType.class) : sourceStatistics;
+        targetStatistics = targetStatistics == null ? new EnumMap<>(OsmPrimitiveType.class) : targetStatistics;
 
         // init the resolver
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolver.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolver.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolver.java	(revision 19629)
@@ -191,7 +191,7 @@
         if (!cbTagRelations.isSelected())
             return null;
-        if (tfKey.getText().trim().isEmpty())
-            return null;
-        if (tfValue.getText().trim().isEmpty())
+        if (tfKey.getText().isBlank())
+            return null;
+        if (tfValue.getText().isBlank())
             return null;
         if (Utils.isEmpty(primitives))
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheTableCellRenderer.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheTableCellRenderer.java	(revision 19629)
@@ -20,5 +20,5 @@
     protected void renderUploadComment(Changeset cs) {
         String comment = cs.getComment();
-        if (comment.trim().isEmpty()) {
+        if (comment.isBlank()) {
             setText(trc("changeset.upload-comment", "empty"));
             setFont(UIManager.getFont("Table.font").deriveFont(Font.ITALIC));
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/TimeValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/TimeValidator.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/TimeValidator.java	(revision 19629)
@@ -44,5 +44,5 @@
     @Override
     public boolean isValid() {
-        if (getComponent().getText().trim().isEmpty())
+        if (getComponent().getText().isBlank())
             return true;
         return getTime() != null;
@@ -92,5 +92,5 @@
      */
     public LocalTime getTime() {
-        if (getComponent().getText().trim().isEmpty())
+        if (getComponent().getText().isBlank())
             return LocalTime.MIDNIGHT;
 
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java	(revision 19629)
@@ -204,5 +204,5 @@
         protected void validate() {
             String value = tfUrl.getText();
-            if (value.trim().isEmpty()) {
+            if (value.isBlank()) {
                 feedbackNone();
                 return;
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 19629)
@@ -339,5 +339,4 @@
      * Extracted interface of {@link EditTagDialog}.
      */
-    @SuppressWarnings("PMD.ImplicitFunctionalInterface")
     protected interface IEditTagDialog extends IExtendedDialog {
         /**
Index: trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 19629)
@@ -193,5 +193,5 @@
         public void actionPerformed(ActionEvent e) {
             String searchExpression = cbSearchExpression.getText();
-            if (!isEnabled() || searchExpression.trim().isEmpty() || serverComboBox.getSelectedItem() == null)
+            if (!isEnabled() || searchExpression.isBlank() || serverComboBox.getSelectedItem() == null)
                 return;
             cbSearchExpression.addCurrentItemToHistory();
@@ -215,5 +215,5 @@
         protected final void updateState() {
             String searchExpression = cbSearchExpression.getText();
-            setEnabled(!searchExpression.trim().isEmpty());
+            setEnabled(!searchExpression.isBlank());
             isSearchMore = Objects.equals(lastSearchExpression, searchExpression) && !model.getData().isEmpty();
             if (isSearchMore) {
Index: trunk/src/org/openstreetmap/josm/gui/io/CredentialDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/CredentialDialog.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/io/CredentialDialog.java	(revision 19629)
@@ -400,7 +400,7 @@
         public void keyPressed(KeyEvent e) {
             if (e.getKeyChar() == KeyEvent.VK_ENTER) {
-                if (currentTF.getText().trim().isEmpty()) {
+                if (currentTF.getText().isBlank()) {
                     currentTF.selectAll();
-                } else if (nextTF.getText().trim().isEmpty()) {
+                } else if (nextTF.getText().isBlank()) {
                     nextTF.requestFocusInWindow();
                     nextTF.selectAll();
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 19629)
@@ -1086,8 +1086,8 @@
             }
             if (entry.getExifGpsDatum() != null) {
-                osd.append(tr("\nDatum: {0}", entry.getExifGpsDatum().toString()));
+                osd.append(tr("\nDatum: {0}", entry.getExifGpsDatum()));
             }
             if (entry.getExifGpsProcMethod() != null) {
-                osd.append(tr("\nProc. method: {0}", entry.getExifGpsProcMethod().toString()));
+                osd.append(tr("\nProc. method: {0}", entry.getExifGpsProcMethod()));
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/layer/imagery/TileSourceDisplaySettings.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/imagery/TileSourceDisplaySettings.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/layer/imagery/TileSourceDisplaySettings.java	(revision 19629)
@@ -81,5 +81,4 @@
      * Create a new {@link TileSourceDisplaySettings}
      */
-    @SuppressWarnings("PMD.UnnecessaryVarargsArrayCreation") // See https://github.com/pmd/pmd/issues/5069
     public TileSourceDisplaySettings() {
         this(new String[] {PREFERENCE_PREFIX});
Index: trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 19629)
@@ -1419,5 +1419,5 @@
 
                 while ((line = reader.readLine()) != null && !canceled) {
-                    if (line.trim().isEmpty()) {
+                    if (line.isBlank()) {
                         continue; // skip empty lines
                     }
Index: trunk/src/org/openstreetmap/josm/gui/preferences/SubPreferenceSetting.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/SubPreferenceSetting.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/SubPreferenceSetting.java	(revision 19629)
@@ -8,5 +8,4 @@
  * (returned by getTabPreferenceSetting).
  */
-@SuppressWarnings("PMD.ImplicitFunctionalInterface")
 public interface SubPreferenceSetting extends PreferenceSetting {
 
Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 19629)
@@ -112,5 +112,5 @@
         public String getDisplay() {
             if (info.getSource() != null) {
-                if (info.getCategory() == NamedColorProperty.COLOR_CATEGORY_MAPPAINT)
+                if (NamedColorProperty.COLOR_CATEGORY_MAPPAINT.equals(info.getCategory()))
                     return tr("Paint style {0}: {1}", tr(I18n.escape(info.getSource())), tr(info.getName()));
                 else
Index: trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/plugin/PluginUpdatePolicyPanel.java	(revision 19629)
@@ -203,5 +203,5 @@
         // remember update interval
         //
-        int days = 0;
+        int days;
         try {
             days = Integer.parseInt(tfUpdateInterval.getText().trim());
Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java	(revision 19629)
@@ -233,5 +233,5 @@
         @Override
         public boolean isValid() {
-            if (getComponent().getText().trim().isEmpty())
+            if (getComponent().getText().isBlank())
                 return false;
             return Utils.isValidUrl(getComponent().getText().trim());
@@ -240,5 +240,5 @@
         @Override
         public void validate() {
-            if (getComponent().getText().trim().isEmpty()) {
+            if (getComponent().getText().isBlank()) {
                 feedbackInvalid(tr("OSM API URL must not be empty. Please enter the OSM API URL."));
                 return;
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReader.java	(revision 19629)
@@ -371,4 +371,5 @@
      * @throws IOException if any I/O error occurs
      */
+    @SuppressWarnings("PMD.UseTryWithResources") // zip.a/zip.b are closed via Utils.close(), which swallows IOException
     static Collection<TaggingPreset> readAll(String source, boolean validate, HashSetWithLast<TaggingPreset> all)
             throws SAXException, IOException {
Index: trunk/src/org/openstreetmap/josm/gui/widgets/BoundingBoxSelectionPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/BoundingBoxSelectionPanel.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/BoundingBoxSelectionPanel.java	(revision 19629)
@@ -146,5 +146,5 @@
         @Override
         public void validate() {
-            double value = 0;
+            double value;
             try {
                 value = JosmDecimalFormatSymbolsProvider.parseDouble(getComponent().getText());
@@ -184,5 +184,5 @@
         @Override
         public void validate() {
-            double value = 0;
+            double value;
             try {
                 value = JosmDecimalFormatSymbolsProvider.parseDouble(getComponent().getText());
Index: trunk/src/org/openstreetmap/josm/gui/widgets/DefaultTextComponentValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/widgets/DefaultTextComponentValidator.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/gui/widgets/DefaultTextComponentValidator.java	(revision 19629)
@@ -27,5 +27,5 @@
     @Override
     public boolean isValid() {
-        return !getComponent().getText().trim().isEmpty();
+        return !getComponent().getText().isBlank();
     }
 
Index: trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 19629)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.data.notes.Note;
 import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.spi.preferences.Config;
@@ -234,5 +235,5 @@
                         .forEach(i -> i.setReferrersDownloaded(true));
                 ds.getWays().forEach(i -> i.setReferrersDownloaded(true));
-                ds.getRelations().stream().filter(r -> r.getMembers().stream().noneMatch(rm -> rm.isRelation()))
+                ds.getRelations().stream().filter(r -> r.getMembers().stream().noneMatch(RelationMember::isRelation))
                         .forEach(i -> i.setReferrersDownloaded(true));
             }
Index: trunk/src/org/openstreetmap/josm/io/DefaultProxySelector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/DefaultProxySelector.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/io/DefaultProxySelector.java	(revision 19629)
@@ -112,5 +112,5 @@
     protected int parseProxyPortValue(String property, String value) {
         if (value == null) return 0;
-        int port = 0;
+        int port;
         try {
             port = Integer.parseInt(value);
Index: trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 19629)
@@ -959,5 +959,5 @@
         StringBuilder urlBuilder = noteStringBuilder(note)
             .append("/close");
-        if (!encodedMessage.trim().isEmpty()) {
+        if (!encodedMessage.isBlank()) {
             urlBuilder.append("?text=")
                     .append(encodedMessage);
@@ -980,5 +980,5 @@
         StringBuilder urlBuilder = noteStringBuilder(note)
             .append("/reopen");
-        if (!encodedMessage.trim().isEmpty()) {
+        if (!encodedMessage.isBlank()) {
             urlBuilder.append("?text=")
                     .append(encodedMessage);
Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/RequestProcessor.java	(revision 19629)
@@ -337,5 +337,5 @@
                 handler.handle();
                 sendHeader(out, "200 OK", handler.getContentType(), false);
-                out.write("Content-length: " + handler.getContent().getBytes().length
+                out.write("Content-length: " + handler.getContent().getBytes(RESPONSE_CHARSET).length
                         + "\r\n");
                 out.write("\r\n");
Index: trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionExporter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionExporter.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/io/session/GeoImageSessionExporter.java	(revision 19629)
@@ -123,8 +123,8 @@
             }
             if (entry.getExifGpsDatum() != null) {
-                addAttr("exif-gps-datum", entry.getExifGpsDatum().toString(), imgElem, support);
+                addAttr("exif-gps-datum", entry.getExifGpsDatum(), imgElem, support);
             }
             if (entry.getExifGpsProcMethod() != null) {
-                addAttr("exif-gps-procmethod", entry.getExifGpsProcMethod().toString(), imgElem, support);
+                addAttr("exif-gps-procmethod", entry.getExifGpsProcMethod(), imgElem, support);
             }
             if (entry.hasNewGpsData()) {
Index: trunk/src/org/openstreetmap/josm/tools/TextAnalyzer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/TextAnalyzer.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/tools/TextAnalyzer.java	(revision 19629)
@@ -79,5 +79,5 @@
                 esc = true;
             } else if (c == '\"' && !quotesStarted) { // opening "
-                if (!s.toString().trim().isEmpty()) { // we had   ||some text"||
+                if (!s.toString().isBlank()) { // we had   ||some text"||
                     s.append(c); // just add ", not open
                 } else {
Index: trunk/src/org/openstreetmap/josm/tools/TextTagParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/TextTagParser.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/tools/TextTagParser.java	(revision 19629)
@@ -59,5 +59,5 @@
         String v;
         for (String line: lines) {
-            if (line.trim().isEmpty()) continue; // skip empty lines
+            if (line.isBlank()) continue; // skip empty lines
             Matcher m = p.matcher(line);
             if (m.matches()) {
Index: trunk/src/org/openstreetmap/josm/tools/template_engine/TemplateParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/template_engine/TemplateParser.java	(revision 19627)
+++ trunk/src/org/openstreetmap/josm/tools/template_engine/TemplateParser.java	(revision 19629)
@@ -81,5 +81,5 @@
     private void skipWhitespace() throws ParseError {
         Token token = tokenizer.lookAhead();
-        if (token.getType() == TokenType.TEXT && token.getText().trim().isEmpty()) {
+        if (token.getType() == TokenType.TEXT && token.getText().isBlank()) {
             tokenizer.nextToken();
         }
