From 4d5fd98ae5f48c6066137590cebd6442050c2a40 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Thu, 20 Feb 2014 08:55:44 +1100 Subject: [PATCH] Fixed two NPE. Categories can technically be null, so need to guard for that when getting them from the ContentProvider. This occurred because I had an old index from before the change from "category" to "categories", so it indeed was null. The other one was from when I added a new repo without a fingerprint. The fingerprint gets changed to upper case, but if null, causes a NPE. --- src/org/fdroid/fdroid/data/AppProvider.java | 7 +++++-- .../fdroid/fdroid/views/fragments/RepoListFragment.java | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/org/fdroid/fdroid/data/AppProvider.java b/src/org/fdroid/fdroid/data/AppProvider.java index d3db88326..c931fa2bd 100644 --- a/src/org/fdroid/fdroid/data/AppProvider.java +++ b/src/org/fdroid/fdroid/data/AppProvider.java @@ -66,8 +66,11 @@ public class AppProvider extends FDroidProvider { if (cursor != null) { cursor.moveToFirst(); while (!cursor.isAfterLast()) { - for( String s : Utils.CommaSeparatedList.make(cursor.getString(0))) { - categorySet.add(s); + String categoriesString = cursor.getString(0); + if (categoriesString != null) { + for( String s : Utils.CommaSeparatedList.make(categoriesString)) { + categorySet.add(s); + } } cursor.moveToNext(); } diff --git a/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java b/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java index a1ef3e9fd..d07e2fa00 100644 --- a/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java +++ b/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java @@ -407,7 +407,9 @@ public class RepoListFragment extends ListFragment private void createNewRepo(String address, String fingerprint) { ContentValues values = new ContentValues(2); values.put(RepoProvider.DataColumns.ADDRESS, address); - values.put(RepoProvider.DataColumns.FINGERPRINT, fingerprint.toUpperCase(Locale.ENGLISH)); + if (fingerprint != null && fingerprint.length() > 0) { + values.put(RepoProvider.DataColumns.FINGERPRINT, fingerprint.toUpperCase(Locale.ENGLISH)); + } RepoProvider.Helper.insert(getActivity(), values); finishedAddingRepo(); }