Ticket #24971: patch-Fix-Sonar-issues-in-OpenFileAction.patch

File patch-Fix-Sonar-issues-in-OpenFileAction.patch, 9.3 KB (added by DanProgs <Abenteurer.2901@…>, 31 hours ago)
  • src/org/openstreetmap/josm/actions/OpenFileAction.java

    ### Eclipse Workspace Patch 1.0
    #P josm
    diff --git src/org/openstreetmap/josm/actions/OpenFileAction.java src/org/openstreetmap/josm/actions/OpenFileAction.java
    index 293f636..00241c6 100644
     
    9393        } else {
    9494            fc = createAndOpenFileChooser(true, true, null, null, FILES_AND_DIRECTORIES, true, null);
    9595        }
    96         if (fc == null)
    97             return;
    98         File[] files = fc.getSelectedFiles();
    99         OpenFileTask task = new OpenFileTask(Arrays.asList(files), fc.getFileFilter());
     96        if (fc == null) {
     97            return;
     98        }
     99        final File[] files = fc.getSelectedFiles();
     100        final OpenFileTask task = new OpenFileTask(Arrays.asList(files), fc.getFileFilter());
    100101        task.setOptions(Options.RECORD_HISTORY);
    101102        MainApplication.worker.submit(task);
    102103    }
    … …  
    125126     * @since 17534 ({@link Options})
    126127     */
    127128    public static Future<?> openFiles(List<File> fileList, Options... options) {
    128         OpenFileTask task = new OpenFileTask(fileList, null);
     129        final OpenFileTask task = new OpenFileTask(fileList, null);
    129130        task.setOptions(options);
    130131        return MainApplication.worker.submit(task);
    131132    }
    … …  
    167168                        this.files.add(file);
    168169                    }
    169170                } else {
    170                     String message = tr("Unable to locate file  ''{0}''.", file.getPath());
     171                    final String message = tr("Unable to locate file  ''{0}''.", file.getPath());
    171172                    Logging.warn(message);
    172173                    new Notification(message).setIcon(JOptionPane.WARNING_MESSAGE).show();
    173174                }
    … …  
    220221
    221222        @Override
    222223        protected void finish() {
    223             MapFrame map = MainApplication.getMap();
     224            final MapFrame map = MainApplication.getMap();
    224225            if (map != null) {
    225226                map.repaint();
    226227            }
    … …  
    275276
    276277        @Override
    277278        protected void realRun() throws SAXException, IOException, OsmTransferException {
    278             if (Utils.isEmpty(files)) return;
    279             List<Layer> oldLayers = MainApplication.getLayerManager().getLayers();
     279            if (Utils.isEmpty(files)) {
     280                return;
     281            }
     282            final List<Layer> oldLayers = MainApplication.getLayerManager().getLayers();
    280283
    281284            /*
    282285             * Find the importer with the chosen file filter
    … …  
    300303
    301304            if (chosenImporter != null) {
    302305                // The importer was explicitly chosen, so use it.
    303                 List<File> filesNotMatchingWithImporter = new LinkedList<>();
    304                 List<File> filesMatchingWithImporter = new LinkedList<>();
     306                final List<File> filesNotMatchingWithImporter = new LinkedList<>();
     307                final List<File> filesMatchingWithImporter = new LinkedList<>();
    305308                for (final File f : files) {
    306309                    if (!chosenImporter.acceptFile(f)) {
    307310                        if (f.isDirectory()) {
    … …  
    327330                }
    328331            } else {
    329332                // find appropriate importer
    330                 MultiMap<FileImporter, File> importerMap = new MultiMap<>();
    331                 List<File> filesWithUnknownImporter = new LinkedList<>();
    332                 List<File> urlFiles = new LinkedList<>();
    333                 FILES: for (File f : files) {
     333                final MultiMap<FileImporter, File> importerMap = new MultiMap<>();
     334                final List<File> filesWithUnknownImporter = new LinkedList<>();
     335                final List<File> urlFiles = new LinkedList<>();
     336                for (File f : files) {
     337                    boolean imported = false;
    334338                    for (FileImporter importer : ExtensionFileFilter.getImporters()) {
    335339                        if (importer.acceptFile(f)) {
    336340                            importerMap.put(importer, f);
    337                             continue FILES;
     341                            imported = true;
     342                            break;
    338343                        }
    339344                    }
     345                    if (imported) {
     346                        continue;
     347                    }
     348                   
    340349                    if (URL_FILE_FILTER.accept(f)) {
    341350                        urlFiles.add(f);
    342351                    } else {
    343352                        filesWithUnknownImporter.add(f);
    344353                    }
    345354                }
     355
    346356                if (!filesWithUnknownImporter.isEmpty()) {
    347357                    alertFilesWithUnknownImporter(filesWithUnknownImporter);
    348358                }
    349                 List<FileImporter> importers = new ArrayList<>(importerMap.keySet());
    350                 Collections.sort(importers);
    351                 Collections.reverse(importers);
     359                final List<FileImporter> importers = new ArrayList<>(importerMap.keySet());
     360                importers.sort(Collections.reverseOrder());
    352361
    353362                for (FileImporter importer : importers) {
    354363                    importData(importer, new ArrayList<>(importerMap.get(importer)));
    355364                }
    356365
    357                 Pattern urlPattern = Pattern.compile(".*(https?://.*)");
     366                final Pattern urlPattern = Pattern.compile(".*(https?://.*)");
    358367                for (File urlFile: urlFiles) {
    359368                    try (BufferedReader reader = Files.newBufferedReader(urlFile.toPath(), StandardCharsets.UTF_8)) {
    360369                        String line;
    361370                        while ((line = reader.readLine()) != null) {
    362                             Matcher m = urlPattern.matcher(line);
     371                            final Matcher m = urlPattern.matcher(line);
    363372                            if (m.matches()) {
    364                                 String url = m.group(1);
     373                                final String url = m.group(1);
    365374                                MainApplication.getMenu().openLocation.openUrl(false, url);
    366375                            }
    367376                        }
    … …  
    374383            }
    375384
    376385            if (this.options.contains(Options.RECORD_HISTORY)) {
    377                 Collection<String> oldFileHistory = Config.getPref().getList("file-open.history");
     386                final Collection<String> oldFileHistory = Config.getPref().getList("file-open.history");
    378387                fileHistory.addAll(oldFileHistory);
    379388                // remove the files which failed to load from the list
    380389                fileHistory.removeAll(failedAll);
    381                 int maxsize = Math.max(0, Config.getPref().getInt("file-open.history.max-size", 15));
     390                final int maxsize = Math.max(0, Config.getPref().getInt("file-open.history.max-size", 15));
    382391                PreferencesUtils.putListBounded(Config.getPref(), "file-open.history", maxsize, new ArrayList<>(fileHistory));
    383392            }
    384393            if (!canceled && !GraphicsEnvironment.isHeadless()) {
    … …  
    390399            // We do have to wrap the EDT call in a worker call, since layers may be created in the EDT.
    391400            // And the layer(s) must be added to the layer list in order for the dialog to work properly.
    392401            MainApplication.worker.execute(() -> GuiHelper.runInEDT(() -> {
    393                 List<Layer> newLayers = MainApplication.getLayerManager().getLayers();
     402                final List<Layer> newLayers = MainApplication.getLayerManager().getLayers();
    394403                // see #23728: open first image of topmost new image layer
    395404                for (Layer l : newLayers) {
    396                     if (oldLayers.contains(l))
    397                         return;
     405                    if (oldLayers.contains(l)) {
     406                        return;
     407                    }
    398408                    if (l instanceof GeoImageLayer) {
    399                         GeoImageLayer imageLayer = (GeoImageLayer) l;
     409                        final GeoImageLayer imageLayer = (GeoImageLayer) l;
    400410                        imageLayer.jumpToNextMarker();
    401411                        return;
    402412                    }
    … …  
    412422        public void importData(FileImporter importer, List<File> files) {
    413423            importer.setOptions(this.options.toArray(new Options[0]));
    414424            if (importer.isBatchImporter()) {
    415                 if (canceled) return;
    416                 String msg = trn("Opening {0} file...", "Opening {0} files...", files.size(), files.size());
     425                if (canceled) {
     426                    return;
     427                }
     428                final String msg = trn("Opening {0} file...", "Opening {0} files...", files.size(), files.size());
    417429                getProgressMonitor().setCustomText(msg);
    418430                getProgressMonitor().indeterminateSubTask(msg);
    419431                if (importer.importDataHandleExceptions(files, getProgressMonitor().createSubTaskMonitor(files.size(), false))) {
    … …  
    421433                }
    422434            } else {
    423435                for (File f : files) {
    424                     if (canceled) return;
     436                    if (canceled) {
     437                        return;
     438                    }
    425439                    getProgressMonitor().indeterminateSubTask(tr("Opening file ''{0}'' ...", f.getAbsolutePath()));
    426440                    if (importer.importDataHandleExceptions(f, getProgressMonitor().createSubTaskMonitor(1, false))) {
    427441                        successfullyOpenedFiles.add(f);