Subject: [PATCH] Fix #23153: Remote Control API call is adding hashtags many times
---
Index: src/org/openstreetmap/josm/gui/io/UploadDialogModel.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/org/openstreetmap/josm/gui/io/UploadDialogModel.java b/src/org/openstreetmap/josm/gui/io/UploadDialogModel.java
--- a/src/org/openstreetmap/josm/gui/io/UploadDialogModel.java	(revision 18822)
+++ b/src/org/openstreetmap/josm/gui/io/UploadDialogModel.java	(date 1693397396986)
@@ -78,7 +78,7 @@
         String hashtags = Arrays.stream(comment.split("\\s", -1))
             .map(s -> Utils.strip(s, ",;"))
             .filter(s -> s.matches("#[a-zA-Z0-9][-_a-zA-Z0-9]+"))
-            .collect(Collectors.joining(";"));
+            .distinct().collect(Collectors.joining(";"));
         return hashtags.isEmpty() ? null : hashtags;
     }
 
@@ -95,7 +95,9 @@
             if (hashtags != null) {
                 Set<String> sanitizedHashtags = new LinkedHashSet<>();
                 for (String hashtag : hashtags.split(";", -1)) {
-                    sanitizedHashtags.add(hashtag.startsWith("#") ? hashtag : "#" + hashtag);
+                    if (comment == null || !comment.contains(hashtag)) {
+                        sanitizedHashtags.add(hashtag.startsWith("#") ? hashtag : "#" + hashtag);
+                    }
                 }
                 if (!sanitizedHashtags.isEmpty()) {
                     result.append(' ').append(String.join(" ", sanitizedHashtags));
