From 8669fddd70a3528b29f376254d236a7cb0952a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Thu, 20 Aug 2015 19:21:50 -0700 Subject: [PATCH] Properly log exceptions --- F-Droid/src/org/fdroid/fdroid/QrGenAsyncTask.java | 2 +- F-Droid/src/org/fdroid/fdroid/UpdateService.java | 11 ++++------- F-Droid/src/org/fdroid/fdroid/Utils.java | 7 +++---- .../src/org/fdroid/fdroid/compat/FileCompat.java | 2 +- F-Droid/src/org/fdroid/fdroid/data/DBHelper.java | 2 +- .../fdroid/fdroid/data/InstalledAppProvider.java | 2 +- .../fdroid/localrepo/LocalRepoKeyStore.java | 15 +++++---------- .../fdroid/fdroid/localrepo/LocalRepoManager.java | 14 ++++++-------- .../fdroid/fdroid/localrepo/LocalRepoService.java | 6 ++---- .../fdroid/fdroid/net/AsyncDownloadWrapper.java | 2 +- F-Droid/src/org/fdroid/fdroid/net/LocalHTTPD.java | 5 ++--- .../fdroid/fdroid/net/WifiStateChangeService.java | 7 ++----- .../fdroid/fdroid/views/ManageReposActivity.java | 2 +- .../fdroid/views/swap/ConnectSwapActivity.java | 2 +- 14 files changed, 31 insertions(+), 48 deletions(-) diff --git a/F-Droid/src/org/fdroid/fdroid/QrGenAsyncTask.java b/F-Droid/src/org/fdroid/fdroid/QrGenAsyncTask.java index 9c527c7ec..533134ac4 100644 --- a/F-Droid/src/org/fdroid/fdroid/QrGenAsyncTask.java +++ b/F-Droid/src/org/fdroid/fdroid/QrGenAsyncTask.java @@ -59,7 +59,7 @@ public class QrGenAsyncTask extends AsyncTask { try { qrBitmap = qrCodeEncoder.encodeAsBitmap(); } catch (WriterException e) { - Log.e(TAG, e.getMessage()); + Log.e(TAG, "Could not encode QR as bitmap", e); } return null; } diff --git a/F-Droid/src/org/fdroid/fdroid/UpdateService.java b/F-Droid/src/org/fdroid/fdroid/UpdateService.java index 34a7ea982..a29535023 100644 --- a/F-Droid/src/org/fdroid/fdroid/UpdateService.java +++ b/F-Droid/src/org/fdroid/fdroid/UpdateService.java @@ -376,8 +376,7 @@ public class UpdateService extends IntentService implements ProgressListener { } catch (RepoUpdater.UpdateException e) { errorRepos.add(repo.address); repoErrors.add(e.getMessage()); - Log.e(TAG, "Error updating repository " + repo.address + ": " + e.getMessage()); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Error updating repository " + repo.address, e); } } @@ -438,9 +437,7 @@ public class UpdateService extends IntentService implements ProgressListener { } } } catch (Exception e) { - Log.e(TAG, - "Exception during update processing:\n" - + Log.getStackTraceString(e)); + Log.e(TAG, "Exception during update processing", e); sendStatus(STATUS_ERROR_GLOBAL, e.getMessage()); } } @@ -597,7 +594,7 @@ public class UpdateService extends IntentService implements ProgressListener { try { executeBatchWithStatus(AppProvider.getAuthority(), operations, currentCount, totalUpdateCount); } catch (RemoteException | OperationApplicationException e) { - Log.e(TAG, e.getMessage()); + Log.e(TAG, "Could not update or insert apps", e); } } @@ -656,7 +653,7 @@ public class UpdateService extends IntentService implements ProgressListener { try { executeBatchWithStatus(ApkProvider.getAuthority(), operations, currentCount, totalApksAppsCount); } catch (RemoteException | OperationApplicationException e) { - Log.e(TAG, e.getMessage()); + Log.e(TAG, "Could not update/insert apps", e); } } diff --git a/F-Droid/src/org/fdroid/fdroid/Utils.java b/F-Droid/src/org/fdroid/fdroid/Utils.java index 3f82d866e..cde1f8a8b 100644 --- a/F-Droid/src/org/fdroid/fdroid/Utils.java +++ b/F-Droid/src/org/fdroid/fdroid/Utils.java @@ -165,7 +165,7 @@ public final class Utils { input.close(); return true; } catch (IOException e) { - e.printStackTrace(); + Log.e(TAG, "I/O error when copying a file", e); return false; } } @@ -247,7 +247,7 @@ public final class Utils { eventType = xml.nextToken(); } } catch (PackageManager.NameNotFoundException | IOException | XmlPullParserException e) { - e.printStackTrace(); + Log.e(TAG, "Could not get min/max sdk version", e); } return 0; } @@ -364,8 +364,7 @@ public final class Utils { ret = formatter.toString(); formatter.close(); } catch (Exception e) { - Log.w(TAG, "Unable to get certificate fingerprint.\n" - + Log.getStackTraceString(e)); + Log.w(TAG, "Unable to get certificate fingerprint", e); } return ret; } diff --git a/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java b/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java index 546fefed0..9cc30f309 100644 --- a/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java +++ b/F-Droid/src/org/fdroid/fdroid/compat/FileCompat.java @@ -76,7 +76,7 @@ public class FileCompat extends Compatibility { } catch (Exception e) { // Should catch more specific exceptions than just "Exception" here, but there are // some which come from libcore.io.Libcore, which we don't have access to at compile time. - Log.e(TAG, "Could not symlink " + source.getAbsolutePath() + " to " + dest.getAbsolutePath() + ": " + e.getMessage()); + Log.e(TAG, "Could not symlink " + source.getAbsolutePath() + " to " + dest.getAbsolutePath(), e); } } diff --git a/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java b/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java index efcb28352..95533ba6e 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java +++ b/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java @@ -181,7 +181,7 @@ public class DBHelper extends SQLiteOpenHelper { db.execSQL("DROP TABLE " + tempTableName + ";"); db.setTransactionSuccessful(); } catch (Exception e) { - Log.e(TAG, "Error renaming id to _id: " + e.getMessage()); + Log.e(TAG, "Error renaming id to _id", e); } db.endTransaction(); } diff --git a/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java b/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java index cad8b18f1..4f3182037 100644 --- a/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java +++ b/F-Droid/src/org/fdroid/fdroid/data/InstalledAppProvider.java @@ -103,7 +103,7 @@ public class InstalledAppProvider extends FDroidProvider { } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } catch (Resources.NotFoundException e) { - Utils.DebugLog(TAG, "getApplicationLabel: " + e.getMessage()); + Utils.DebugLog(TAG, "Could not get application label", e); } return packageName; // all else fails, return id } diff --git a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java index b4c065138..548043b1c 100644 --- a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java +++ b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoKeyStore.java @@ -156,12 +156,10 @@ public class LocalRepoKeyStore { wrappedKeyManager }; } catch (UnrecoverableKeyException | KeyStoreException | NoSuchAlgorithmException | CertificateException | OperatorCreationException | IOException e) { - Log.e(TAG, "Error loading keystore: " + e.getMessage()); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Error loading keystore", e); // TODO: Remove once we have a proper fix for #334 } catch (IllegalArgumentException e) { - Log.e(TAG, "Error loading keystore: " + e.getMessage()); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Error loading keystore", e); Log.e(TAG, "See https://gitlab.com/fdroid/fdroidclient/issues/334"); } } @@ -183,8 +181,7 @@ public class LocalRepoKeyStore { FDroidApp.ipAddressString); addToStore(HTTP_CERT_ALIAS, kerplappKeypair, indexCert); } catch (Exception e) { - Log.e(TAG, "Failed to setup HTTPS certificate: " + e); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Failed to setup HTTPS certificate", e); } } @@ -213,8 +210,7 @@ public class LocalRepoKeyStore { zipSigner.signZip(input.getAbsolutePath(), output.getAbsolutePath()); } catch (ClassNotFoundException | IllegalAccessException | InstantiationException | GeneralSecurityException | IOException e) { - Log.e(TAG, "Unable to sign local repo index: " + e); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Unable to sign local repo index", e); } } @@ -243,8 +239,7 @@ public class LocalRepoKeyStore { if (key instanceof PrivateKey) return keyStore.getCertificate(INDEX_CERT_ALIAS); } catch (GeneralSecurityException e) { - Log.e(TAG, "Unable to get certificate for local repo: " + e); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Unable to get certificate for local repo", e); } return null; } diff --git a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java index 220fa6cf6..692d4b470 100644 --- a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java +++ b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoManager.java @@ -136,7 +136,7 @@ public class LocalRepoManager { if (Utils.symlinkOrCopyFile(apkFile, fdroidApkLink)) fdroidClientURL = "/" + fdroidApkLink.getName(); } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); + Log.e(TAG, "Could not set up F-Droid apk in the webroot", e); } return fdroidClientURL; } @@ -176,8 +176,7 @@ public class LocalRepoManager { symlinkEntireWebRootElsewhere("../../", repoDirCaps); } catch (IOException e) { - Log.e(TAG, "Error writing local repo index: " + e.getMessage()); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Error writing local repo index", e); } } @@ -256,8 +255,7 @@ public class LocalRepoManager { PackageInfo packageInfo = pm.getPackageInfo(packageName, PackageManager.GET_META_DATA); app.icon = getIconFile(packageName, packageInfo.versionCode).getName(); } catch (PackageManager.NameNotFoundException | CertificateEncodingException | IOException e) { - Log.e(TAG, "Error adding app to local repo: " + e.getMessage()); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Error adding app to local repo", e); return; } Utils.DebugLog(TAG, "apps.put: " + packageName); @@ -276,7 +274,7 @@ public class LocalRepoManager { appInfo = pm.getApplicationInfo(app.id, PackageManager.GET_META_DATA); copyIconToRepo(appInfo.loadIcon(pm), app.id, app.installedApk.vercode); } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); + Log.e(TAG, "Error getting app icon", e); } } } @@ -303,7 +301,7 @@ public class LocalRepoManager { bitmap.compress(CompressFormat.PNG, 100, out); out.close(); } catch (Exception e) { - e.printStackTrace(); + Log.e(TAG, "Error copying icon to repo", e); } } @@ -478,7 +476,7 @@ public class LocalRepoManager { try { new IndexXmlBuilder(context, apps).build(new FileWriter(xmlIndex)); } catch (Exception e) { - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Could not write index jar", e); Toast.makeText(context, R.string.failed_to_create_index, Toast.LENGTH_LONG).show(); return; } diff --git a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoService.java b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoService.java index 880eb2582..6b43c3ecb 100644 --- a/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoService.java +++ b/F-Droid/src/org/fdroid/fdroid/localrepo/LocalRepoService.java @@ -228,8 +228,7 @@ public class LocalRepoService extends Service { Log.w(TAG, "port " + prev + " occupied, trying on " + FDroidApp.port + "!"); startService(new Intent(LocalRepoService.this, WifiStateChangeService.class)); } catch (IOException e) { - Log.e(TAG, "Could not start local repo HTTP server: " + e); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Could not start local repo HTTP server", e); } Looper.loop(); // start the message receiving loop } @@ -282,8 +281,7 @@ public class LocalRepoService extends Service { jmdns = JmDNS.create(); jmdns.registerService(pairService); } catch (IOException e) { - Log.e(TAG, "Error while registering jmdns service: " + e); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Error while registering jmdns service", e); } } }).start(); diff --git a/F-Droid/src/org/fdroid/fdroid/net/AsyncDownloadWrapper.java b/F-Droid/src/org/fdroid/fdroid/net/AsyncDownloadWrapper.java index 3588343b8..ef0996ad4 100644 --- a/F-Droid/src/org/fdroid/fdroid/net/AsyncDownloadWrapper.java +++ b/F-Droid/src/org/fdroid/fdroid/net/AsyncDownloadWrapper.java @@ -95,7 +95,7 @@ public class AsyncDownloadWrapper extends Handler { } catch (InterruptedException e) { sendMessage(MSG_DOWNLOAD_CANCELLED); } catch (IOException e) { - Log.e(TAG, e.getMessage() + ": " + Log.getStackTraceString(e)); + Log.e(TAG, "I/O exception in download thread", e); Bundle data = new Bundle(1); data.putString(MSG_DATA, e.getLocalizedMessage()); Message message = new Message(); diff --git a/F-Droid/src/org/fdroid/fdroid/net/LocalHTTPD.java b/F-Droid/src/org/fdroid/fdroid/net/LocalHTTPD.java index 643bf93a1..9c1129e81 100644 --- a/F-Droid/src/org/fdroid/fdroid/net/LocalHTTPD.java +++ b/F-Droid/src/org/fdroid/fdroid/net/LocalHTTPD.java @@ -91,7 +91,7 @@ public class LocalHTTPD extends NanoHTTPD { try { session.parseBody(new HashMap()); } catch (IOException e) { - Log.e(TAG, e.getMessage()); + Log.e(TAG, "An error occured while parsing the POST body", e); return new Response(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT, "Internal server error, check logcat on server for details."); } catch (ResponseException re) { return new Response(re.getStatus(), MIME_PLAINTEXT, re.getMessage()); @@ -153,8 +153,7 @@ public class LocalHTTPD extends NanoHTTPD { localRepoKeyStore.getKeyManagers()); makeSecure(factory); } catch (LocalRepoKeyStore.InitException | IOException e) { - Log.e(TAG, "Could not enable HTTPS: " + e.getMessage()); - Log.e(TAG, Log.getStackTraceString(e)); + Log.e(TAG, "Could not enable HTTPS", e); } } diff --git a/F-Droid/src/org/fdroid/fdroid/net/WifiStateChangeService.java b/F-Droid/src/org/fdroid/fdroid/net/WifiStateChangeService.java index 401719d93..3c4930abd 100644 --- a/F-Droid/src/org/fdroid/fdroid/net/WifiStateChangeService.java +++ b/F-Droid/src/org/fdroid/fdroid/net/WifiStateChangeService.java @@ -135,11 +135,8 @@ public class WifiStateChangeService extends Service { if (Preferences.get().isLocalRepoHttpsEnabled()) localRepoKeyStore.setupHTTPSCertificate(); - } catch (LocalRepoKeyStore.InitException e) { - Log.e(TAG, "Unable to configure a fingerprint or HTTPS for the local repo: " + e.getMessage()); - Log.e(TAG, Log.getStackTraceString(e)); - } catch (InterruptedException e) { - Log.e(TAG, Log.getStackTraceString(e)); + } catch (LocalRepoKeyStore.InitException | InterruptedException e) { + Log.e(TAG, "Unable to configure a fingerprint or HTTPS for the local repo", e); } return null; } diff --git a/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java b/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java index 3f287321a..7a24a5b09 100644 --- a/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java +++ b/F-Droid/src/org/fdroid/fdroid/views/ManageReposActivity.java @@ -533,7 +533,7 @@ public class ManageReposActivity extends ActionBarActivity { return addressWithoutIndex; } } catch (IOException e) { - Log.e(TAG, "Error while searching for repo at " + addressWithoutIndex + ": " + e.getMessage()); + Log.e(TAG, "Error while searching for repo at " + addressWithoutIndex, e); return originalAddress; } diff --git a/F-Droid/src/org/fdroid/fdroid/views/swap/ConnectSwapActivity.java b/F-Droid/src/org/fdroid/fdroid/views/swap/ConnectSwapActivity.java index 3eb2bad1e..608ec88ce 100644 --- a/F-Droid/src/org/fdroid/fdroid/views/swap/ConnectSwapActivity.java +++ b/F-Droid/src/org/fdroid/fdroid/views/swap/ConnectSwapActivity.java @@ -198,7 +198,7 @@ public class ConnectSwapActivity extends ActionBarActivity { client.execute(host, request); } catch (IOException e) { notifyOfErrorOnUiThread(); - Log.e(TAG, "Error while asking server to swap with us: " + e.getMessage()); + Log.e(TAG, "Error while asking server to swap with us", e); } finally { client.close(); }