Ticket #12249: delete_file.patch

File delete_file.patch, 13.7 KB (added by Don-vip, 8 years ago)
  • src/org/openstreetmap/josm/actions/SessionLoadAction.java

     
    163163                    viewport = reader.getViewport();
    164164                } finally {
    165165                    if (tempFile) {
    166                         if (!file.delete()) {
    167                             file.deleteOnExit();
    168                         }
     166                        Utils.deleteFile(file);
    169167                        file = null;
    170168                    }
    171169                }
  • src/org/openstreetmap/josm/data/AutosaveTask.java

     
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.data;
    33
     4import static org.openstreetmap.josm.tools.I18n.marktr;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56
    67import java.io.BufferedReader;
     
    3940import org.openstreetmap.josm.gui.util.GuiHelper;
    4041import org.openstreetmap.josm.io.OsmExporter;
    4142import org.openstreetmap.josm.io.OsmImporter;
     43import org.openstreetmap.josm.tools.Utils;
    4244
    4345/**
    4446 * Saves data layers periodically so they can be recovered in case of a crash.
     
    193195        }
    194196        while (info.backupFiles.size() > PROP_FILES_PER_LAYER.get()) {
    195197            File oldFile = info.backupFiles.remove();
    196             if (!oldFile.delete()) {
    197                 Main.warn(tr("Unable to delete old backup file {0}", oldFile.getAbsolutePath()));
    198             } else {
    199                 File pidFile = getPidFile(oldFile);
    200                 if (!pidFile.delete()) {
    201                     Main.warn(tr("Unable to delete old backup file {0}", pidFile.getAbsolutePath()));
    202                 }
     198            if (Utils.deleteFile(oldFile, marktr("Unable to delete old backup file {0}"))) {
     199                Utils.deleteFile(getPidFile(oldFile), marktr("Unable to delete old backup file {0}"));
    203200            }
    204201        }
    205202    }
     
    272269                            moveToDeletedLayersFolder(lastFile);
    273270                        }
    274271                        for (File file: info.backupFiles) {
    275                             if (file.delete()) {
    276                                 getPidFile(file).delete();
     272                            if (Utils.deleteFile(file)) {
     273                                Utils.deleteFile(getPidFile(file));
    277274                            }
    278275                        }
    279276
     
    368365
    369366        if (backupFile.exists()) {
    370367            deletedLayers.remove(backupFile);
    371             if (!backupFile.delete()) {
    372                 Main.warn(String.format("Could not delete old backup file %s", backupFile));
    373             }
     368            Utils.deleteFile(backupFile, marktr("Unable to delete old backup file {0}"));
    374369        }
    375370        if (f.renameTo(backupFile)) {
    376371            deletedLayers.add(backupFile);
    377             pidFile.delete();
     372            Utils.deleteFile(pidFile);
    378373        } else {
    379374            Main.warn(String.format("Could not move autosaved file %s to %s folder", f.getName(), deletedLayersDir.getName()));
    380375            // we cannot move to deleted folder, so just try to delete it directly
    381             if (!f.delete()) {
    382                 Main.warn(String.format("Could not delete backup file %s", f));
    383             } else if (!pidFile.delete()) {
    384                 Main.warn(String.format("Could not delete PID file %s", pidFile));
     376            if (Utils.deleteFile(f, marktr("Unable to delete backup file {0}"))) {
     377                Utils.deleteFile(pidFile, marktr("Unable to delete PID file {0}"));
    385378            }
    386379        }
    387380        while (deletedLayers.size() > PROP_DELETED_LAYERS.get()) {
     
    389382            if (next == null) {
    390383                break;
    391384            }
    392             if (!next.delete()) {
    393                 Main.warn(String.format("Could not delete archived backup file %s", next));
    394             }
     385            Utils.deleteFile(next, marktr("Unable to delete archived backup file {0}"));
    395386        }
    396387    }
    397388
  • src/org/openstreetmap/josm/data/CustomConfigurator.java

     
    313313                }
    314314            }
    315315        }
    316         try {
    317             f.delete();
    318         } catch (Exception e) {
    319             log("Warning: Can not delete file "+f.getPath()+": "+e.getMessage());
     316        if (!Utils.deleteFile(f)) {
     317            log("Warning: Can not delete file "+f.getPath());
    320318        }
    321319    }
    322320
  • src/org/openstreetmap/josm/data/Preferences.java

     
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.data;
    33
     4import static org.openstreetmap.josm.tools.I18n.marktr;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56
    67import java.awt.Color;
     
    859860
    860861        File tmpFile = new File(prefFile + "_tmp");
    861862        Utils.copyFile(tmpFile, prefFile);
    862         if (!tmpFile.delete()) {
    863             Main.warn(tr("Unable to delete temporary file {0}", tmpFile.getAbsolutePath()));
    864         }
     863        Utils.deleteFile(tmpFile, marktr("Unable to delete temporary file {0}"));
    865864
    866865        setCorrectPermissions(prefFile);
    867866        setCorrectPermissions(backupFile);
  • src/org/openstreetmap/josm/gui/io/DownloadFileTask.java

     
    2121import org.openstreetmap.josm.gui.PleaseWaitDialog;
    2222import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    2323import org.openstreetmap.josm.tools.HttpClient;
     24import org.openstreetmap.josm.tools.Utils;
    2425import org.xml.sax.SAXException;
    2526
    2627/**
     
    130131                if (unpack) {
    131132                    Main.info(tr("Unpacking {0} into {1}", file.getAbsolutePath(), file.getParent()));
    132133                    unzipFileRecursively(file, file.getParent());
    133                     file.delete();
     134                    Utils.deleteFile(file);
    134135                }
    135136            }
    136137        } catch (MalformedURLException e) {
  • src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java

     
    808808                    ImageViewerDialog.showImage(this, null);
    809809                }
    810810
    811                 if (toDelete.getFile().delete()) {
     811                if (Utils.deleteFile(toDelete.getFile())) {
    812812                    Main.info("File "+toDelete.getFile()+" deleted. ");
    813813                } else {
    814814                    JOptionPane.showMessageDialog(
  • src/org/openstreetmap/josm/io/CachedFile.java

     
    335335                if (localPath.size() == 2) {
    336336                    File lfile = new File(localPath.get(1));
    337337                    if (lfile.exists()) {
    338                         lfile.delete();
     338                        Utils.deleteFile(lfile);
    339339                    }
    340340                }
    341341                Main.pref.putCollection(prefKey, null);
  • src/org/openstreetmap/josm/io/OsmExporter.java

     
    9292            doSave(file, layer);
    9393            if (noBackup || !Main.pref.getBoolean("save.keepbackup", false)) {
    9494                if (tmpFile != null) {
    95                     tmpFile.delete();
     95                    Utils.deleteFile(tmpFile);
    9696                }
    9797            }
    9898            layer.onPostSaveToFile();
  • src/org/openstreetmap/josm/plugins/ReadRemotePluginInformationTask.java

     
    325325        }
    326326        // remove old stuff or whole update process is broken
    327327        for (File file: siteCacheFiles) {
    328             file.delete();
     328            Utils.deleteFile(file);
    329329        }
    330330    }
    331331
  • src/org/openstreetmap/josm/tools/PlatformHookOsx.java

     
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.tools;
    33
     4import static org.openstreetmap.josm.tools.I18n.marktr;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56
    67import java.awt.Image;
     
    365366                        Main.pref.getPreferencesDirectory().mkdirs();
    366367                        Main.info("Copying old preferences file to new location");
    367368                        Utils.copyFile(oldPref, newPref);
    368                         if (!oldPref.delete()) {
    369                             Main.warn("Unable to delete old preferences file: "+oldPref.getPath());
    370                         }
     369                        Utils.deleteFile(oldPref, marktr("Unable to delete old preferences file {0}"));
    371370                    } catch (IOException e) {
    372371                        Main.error(e);
    373372                        error = true;
  • src/org/openstreetmap/josm/tools/PlatformHookWindows.java

     
    189189    @Override
    190190    public boolean rename(File from, File to) {
    191191        if (to.exists())
    192             to.delete();
     192            Utils.deleteFile(to);
    193193        return from.renameTo(to);
    194194    }
    195195
  • src/org/openstreetmap/josm/tools/Utils.java

     
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.tools;
    33
     4import static org.openstreetmap.josm.tools.I18n.marktr;
    45import static org.openstreetmap.josm.tools.I18n.tr;
    56import static org.openstreetmap.josm.tools.I18n.trn;
    67
     
    450451                for (File file : files) {
    451452                    if (file.isDirectory()) {
    452453                        deleteDirectory(file);
    453                     } else if (!file.delete()) {
    454                         Main.warn("Unable to delete file: "+file.getPath());
     454                    } else {
     455                        deleteFile(file);
    455456                    }
    456457                }
    457458            }
     
    460461    }
    461462
    462463    /**
     464     * Deletes a file and log a default warning if the deletion fails.
     465     * @param file file to delete
     466     * and must contain a single parameter <code>{0}</code> for the file path
     467     * @return {@code true} if and only if the file is successfully deleted; {@code false} otherwise
     468     * @since XXXX
     469     */
     470    public static boolean deleteFile(File file) {
     471        return deleteFile(file, marktr("Unable to delete file {0}"));
     472    }
     473
     474    /**
     475     * Deletes a file and log a configurable warning if the deletion fails.
     476     * @param file file to delete
     477     * @param warnMsg warning message. It will be translated with {@code tr()}
     478     * and must contain a single parameter <code>{0}</code> for the file path
     479     * @return {@code true} if and only if the file is successfully deleted; {@code false} otherwise
     480     * @since XXXX
     481     */
     482    public static boolean deleteFile(File file, String warnMsg) {
     483        boolean result = file.delete();
     484        if (!result) {
     485            Main.warn(tr(warnMsg, file.getPath()));
     486        }
     487        return result;
     488    }
     489
     490    /**
    463491     * <p>Utility method for closing a {@link java.io.Closeable} object.</p>
    464492     *
    465493     * @param c the closeable object. May be null.
  • test/unit/org/openstreetmap/josm/io/session/SessionWriterTest.java

     
    2727import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
    2828import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
    2929import org.openstreetmap.josm.tools.MultiMap;
     30import org.openstreetmap.josm.tools.Utils;
    3031
    3132/**
    3233 * Unit tests for Session writing.
     
    107108            fail(e.getMessage());
    108109        } finally {
    109110            if (file.exists()) {
    110                 file.delete();
     111                Utils.deleteFile(file);
    111112            }
    112113        }
    113114    }