From 645f9fc5e3921286f3a1f3b765f0a46b94ff589c Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Thu, 10 Sep 2015 06:13:28 +1000 Subject: [PATCH] Rename Utils.copy and Utils.symlinkOrCopyFile to indicate exception clobbering Renamed to Utils.copyQuietly() and Utils.symlinkOrCopyFileQuietly(). The copy(File, File) method gobbles up IOExceptions, whereas the other copy(InputStream, OupputStream) method doesn't. This could cause confusion, whereas developers using one may not realise it is is gobblign their exceptions. --- F-Droid/src/org/fdroid/fdroid/Utils.java | 7 +++---- .../src/org/fdroid/fdroid/localrepo/LocalRepoManager.java | 6 +++--- F-Droid/src/org/fdroid/fdroid/net/ApkDownloader.java | 6 ++---- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/F-Droid/src/org/fdroid/fdroid/Utils.java b/F-Droid/src/org/fdroid/fdroid/Utils.java index 0ea85c4ea..13615b909 100644 --- a/F-Droid/src/org/fdroid/fdroid/Utils.java +++ b/F-Droid/src/org/fdroid/fdroid/Utils.java @@ -48,7 +48,6 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.BufferedInputStream; import java.io.Closeable; import java.io.File; -import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; @@ -143,8 +142,8 @@ public final class Utils { /** * Attempt to symlink, but if that fails, it will make a copy of the file. */ - public static boolean symlinkOrCopyFile(SanitizedFile inFile, SanitizedFile outFile) { - return FileCompat.symlink(inFile, outFile) || copy(inFile, outFile); + public static boolean symlinkOrCopyFileQuietly(SanitizedFile inFile, SanitizedFile outFile) { + return FileCompat.symlink(inFile, outFile) || copyQuietly(inFile, outFile); } /** @@ -162,7 +161,7 @@ public final class Utils { } } - public static boolean copy(File inFile, File outFile) { + public static boolean copyQuietly(File inFile, File outFile) { InputStream input = null; OutputStream output = null; try { diff --git a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java index e87705b18..e404db88d 100644 --- a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java +++ b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java @@ -140,7 +140,7 @@ public class LocalRepoManager { SanitizedFile apkFile = SanitizedFile.knownSanitized(appInfo.publicSourceDir); SanitizedFile fdroidApkLink = new SanitizedFile(webRoot, "fdroid.client.apk"); attemptToDelete(fdroidApkLink); - if (Utils.symlinkOrCopyFile(apkFile, fdroidApkLink)) + if (Utils.symlinkOrCopyFileQuietly(apkFile, fdroidApkLink)) fdroidClientURL = "/" + fdroidApkLink.getName(); } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Could not set up F-Droid apk in the webroot", e); @@ -220,7 +220,7 @@ public class LocalRepoManager { private void symlinkFileElsewhere(String fileName, String symlinkPrefix, File directory) { SanitizedFile index = new SanitizedFile(directory, fileName); attemptToDelete(index); - Utils.symlinkOrCopyFile(new SanitizedFile(new File(directory, symlinkPrefix), fileName), index); + Utils.symlinkOrCopyFileQuietly(new SanitizedFile(new File(directory, symlinkPrefix), fileName), index); } private void deleteContents(File path) { @@ -249,7 +249,7 @@ public class LocalRepoManager { if (app.installedApk != null) { SanitizedFile outFile = new SanitizedFile(repoDir, app.installedApk.apkName); - if (Utils.symlinkOrCopyFile(app.installedApk.installedFile, outFile)) + if (Utils.symlinkOrCopyFileQuietly(app.installedApk.installedFile, outFile)) continue; } // if we got here, something went wrong diff --git a/F-Droid/src/org/fdroid/fdroid/net/ApkDownloader.java b/F-Droid/src/org/fdroid/fdroid/net/ApkDownloader.java index c743ebd3e..070db2e6e 100644 --- a/F-Droid/src/org/fdroid/fdroid/net/ApkDownloader.java +++ b/F-Droid/src/org/fdroid/fdroid/net/ApkDownloader.java @@ -21,7 +21,6 @@ package org.fdroid.fdroid.net; import android.content.Context; -import android.os.Build; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; @@ -39,7 +38,6 @@ import org.fdroid.fdroid.data.SanitizedFile; import java.io.File; import java.io.IOException; -import java.net.URL; import java.security.NoSuchAlgorithmException; /** @@ -188,7 +186,7 @@ public class ApkDownloader implements AsyncDownloader.Listener { // Can we use the cached version? if (verifyOrDelete(potentiallyCachedFile)) { delete(localFile); - Utils.copy(potentiallyCachedFile, localFile); + Utils.copyQuietly(potentiallyCachedFile, localFile); prepareApkFileAndSendCompleteMessage(); return false; } @@ -243,7 +241,7 @@ public class ApkDownloader implements AsyncDownloader.Listener { private void cacheIfRequired() { if (Preferences.get().shouldCacheApks()) { Utils.DebugLog(TAG, "Copying .apk file to cache at " + potentiallyCachedFile.getAbsolutePath()); - Utils.copy(localFile, potentiallyCachedFile); + Utils.copyQuietly(localFile, potentiallyCachedFile); } }