Ticket #24974: patch-Fix-Sonar-issues-in-UrlBasedQueryPanel.patch

File patch-Fix-Sonar-issues-in-UrlBasedQueryPanel.patch, 4.4 KB (added by DanProgs <Abenteurer.2901@…>, 27 hours ago)
  • src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java

    ### Eclipse Workspace Patch 1.0
    #P josm
    diff --git src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java src/org/openstreetmap/josm/gui/dialogs/changeset/query/UrlBasedQueryPanel.java
    index 5b99e82..7b93c01 100644
     
    99import java.awt.Insets;
    1010import java.awt.event.FocusAdapter;
    1111import java.awt.event.FocusEvent;
    12 import java.net.MalformedURLException;
    13 import java.net.URL;
     12import java.net.URI;
     13import java.net.URISyntaxException;
    1414import java.util.Arrays;
    1515import java.util.List;
    1616import java.util.stream.Collectors;
    … …  
    4848    }
    4949
    5050    protected JPanel buildURLPanel() {
    51         JPanel pnl = new JPanel(new GridBagLayout());
    52         GridBagConstraints gc = new GridBagConstraints();
     51        final JPanel pnl = new JPanel(new GridBagLayout());
     52        final GridBagConstraints gc = new GridBagConstraints();
    5353        gc.weightx = 0.0;
    5454        gc.fill = GridBagConstraints.HORIZONTAL;
    5555        gc.insets = new Insets(0, 0, 0, 5);
    … …  
    8484    }
    8585
    8686    protected JPanel buildHelpPanel() {
    87         String apiUrl = OsmApi.getOsmApi().getBaseUrl();
    88         HtmlPanel pnl = new HtmlPanel();
     87        final String apiUrl = OsmApi.getOsmApi().getBaseUrl();
     88        final HtmlPanel pnl = new HtmlPanel();
    8989        pnl.setText(
    9090                "<html><body>"
    9191                + tr("Please enter or paste an URL to retrieve changesets from the OSM API.")
    … …  
    112112        setLayout(new GridBagLayout());
    113113        setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
    114114
    115         GridBagConstraints gc = new GridBagConstraints();
     115        final GridBagConstraints gc = new GridBagConstraints();
    116116        gc.weightx = 1.0;
    117117        gc.fill = GridBagConstraints.HORIZONTAL;
    118118        gc.insets = new Insets(0, 0, 10, 0);
    … …  
    135135    }
    136136
    137137    protected static ChangesetQuery buildChangesetQuery(String text) {
    138         URL url = null;
    139         try {
    140             url = new URL(text);
    141         } catch (MalformedURLException e) {
     138        if (text == null || text.isBlank()) {
    142139            return null;
    143140        }
    144         String path = url.getPath();
    145         if (path == null || (!path.endsWith("/changesets") && !path.endsWith("/history")))
    146             return null;
    147 
     141       
    148142        try {
    149             return ChangesetQuery.buildFromUrlQuery(url.getQuery());
     143            final URI uri = new URI(text);
     144            final String path = uri.getPath();
     145
     146            if (path == null || (!path.endsWith("/changesets") && !path.endsWith("/history"))) {
     147                return null;
     148            }
     149
     150            return ChangesetQuery.buildFromUrlQuery(uri.getQuery());
     151
     152        } catch (URISyntaxException e) {
     153            // Ungültiges URL/URI-Format -> laut Methode als null behandeln
     154            return null;
    150155        } catch (ChangesetQueryUrlException e) {
    151156            Logging.warn(e);
    152157            return null;
    … …  
    160165     * @return the changeset query
    161166     */
    162167    public ChangesetQuery buildChangesetQuery() {
    163         String value = tfUrl.getText().trim();
     168        final String value = tfUrl.getText().trim();
    164169        return buildChangesetQuery(value);
    165170    }
    166171
    … …  
    176181     */
    177182    class ChangetQueryUrlValidator implements DocumentListener {
    178183        protected String getCurrentFeedback() {
    179             String fb = (String) lblValid.getClientProperty("valid");
     184            final String fb = (String) lblValid.getClientProperty("valid");
    180185            return fb == null ? "none" : fb;
    181186        }
    182187
    183188        protected void feedbackValid() {
    184             if ("valid".equals(getCurrentFeedback()))
    185                 return;
     189            if ("valid".equals(getCurrentFeedback())) {
     190                return;
     191            }
    186192            lblValid.setIcon(ImageProvider.get("misc", "green_check"));
    187193            lblValid.setToolTipText(null);
    188194            lblValid.putClientProperty("valid", "valid");
    189195        }
    190196
    191197        protected void feedbackInvalid() {
    192             if ("invalid".equals(getCurrentFeedback()))
    193                 return;
     198            if ("invalid".equals(getCurrentFeedback())) {
     199                return;
     200            }
    194201            lblValid.setIcon(ImageProvider.get("warning-small"));
    195202            lblValid.setToolTipText(tr("This changeset query URL is invalid"));
    196203            lblValid.putClientProperty("valid", "invalid");