From dfd5aa65a54941261b7a2ee19fedd99ee0e9607b Mon Sep 17 00:00:00 2001 From: Tim Bray Date: Thu, 22 May 2014 16:56:28 -0700 Subject: Add Log.d for QueryFailedException --- .../keychain/keyimport/HkpKeyserver.java | 10 ++++----- .../keychain/keyimport/KeybaseKeyserver.java | 5 +++-- .../keychain/keyimport/Keyserver.java | 13 +++++++----- .../keychain/ui/ImportKeysListFragment.java | 24 +++++++--------------- .../ui/adapter/ImportKeysListKeybaseLoader.java | 6 +----- .../ui/adapter/ImportKeysListServerLoader.java | 4 +--- 6 files changed, 25 insertions(+), 37 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java index f14978b39..202b750e4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java @@ -200,12 +200,12 @@ public class HkpKeyserver extends Keyserver { } @Override - public ArrayList search(String query) throws QueryException, TooManyResponses, - InsufficientQuery { + public ArrayList search(String query) throws QueryException, + QueryNeedsRepairException { ArrayList results = new ArrayList(); if (query.length() < 3) { - throw new InsufficientQuery(); + throw new QueryTooShortException(); } String encodedQuery; @@ -226,9 +226,9 @@ public class HkpKeyserver extends Keyserver { if (e.getData().toLowerCase(Locale.US).contains("no keys found")) { return results; } else if (e.getData().toLowerCase(Locale.US).contains("too many")) { - throw new TooManyResponses(); + throw new TooManyResponsesException(); } else if (e.getData().toLowerCase(Locale.US).contains("insufficient")) { - throw new InsufficientQuery(); + throw new QueryTooShortException(); } } throw new QueryException("querying server(s) for '" + mHost + "' failed"); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java index 5b66b50c5..ec4b61671 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java @@ -34,8 +34,8 @@ public class KeybaseKeyserver extends Keyserver { private String mQuery; @Override - public ArrayList search(String query) throws QueryException, TooManyResponses, - InsufficientQuery { + public ArrayList search(String query) throws QueryException, + QueryNeedsRepairException { ArrayList results = new ArrayList(); if (query.startsWith("0x")) { @@ -84,6 +84,7 @@ public class KeybaseKeyserver extends Keyserver { } private ImportKeysListEntry makeEntry(JSONObject match) throws QueryException, JSONException { + final ImportKeysListEntry entry = new ImportKeysListEntry(); entry.setQuery(mQuery); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java index 19591eda8..7313a159b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java @@ -32,20 +32,23 @@ public abstract class Keyserver { } } - public static class TooManyResponses extends Exception { + public static class QueryNeedsRepairException extends Exception { + private static final long serialVersionUID = 2693768928624654512L; + } + + public static class TooManyResponsesException extends QueryNeedsRepairException { private static final long serialVersionUID = 2703768928624654513L; } - public static class InsufficientQuery extends Exception { - private static final long serialVersionUID = 2703768928624654514L; + public static class QueryTooShortException extends QueryNeedsRepairException { } public static class AddKeyException extends Exception { private static final long serialVersionUID = -507574859137295530L; } - abstract List search(String query) throws QueryException, TooManyResponses, - InsufficientQuery; + abstract List search(String query) throws QueryException, + QueryNeedsRepairException; abstract String get(String keyIdHex) throws QueryException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java index e93d717e1..9c05dcc65 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java @@ -273,38 +273,28 @@ public class ImportKeysListFragment extends ListFragment implements break; case LOADER_ID_SERVER_QUERY: + case LOADER_ID_KEYBASE: + // TODO: possibly fine-tune message building for these two cases if (error == null) { AppMsg.makeText( getActivity(), getResources().getQuantityString(R.plurals.keys_found, mAdapter.getCount(), mAdapter.getCount()), AppMsg.STYLE_INFO ).show(); - } else if (error instanceof Keyserver.InsufficientQuery) { + } else if (error instanceof Keyserver.QueryTooShortException) { AppMsg.makeText(getActivity(), R.string.error_keyserver_insufficient_query, AppMsg.STYLE_ALERT).show(); } else if (error instanceof Keyserver.QueryException) { - AppMsg.makeText(getActivity(), R.string.error_keyserver_query, - AppMsg.STYLE_ALERT).show(); - } else if (error instanceof Keyserver.TooManyResponses) { + String alert = getActivity().getString(R.string.error_searching_keys); + alert = alert + " (" + error.getLocalizedMessage() + ")"; + AppMsg.makeText(getActivity(), alert, AppMsg.STYLE_ALERT).show(); + } else if (error instanceof Keyserver.TooManyResponsesException) { AppMsg.makeText(getActivity(), R.string.error_keyserver_too_many_responses, AppMsg.STYLE_ALERT).show(); } break; - case LOADER_ID_KEYBASE: - - if (error == null) { - AppMsg.makeText( - getActivity(), getResources().getQuantityString(R.plurals.keys_found, - mAdapter.getCount(), mAdapter.getCount()), - AppMsg.STYLE_INFO - ).show(); - } else if (error instanceof Keyserver.QueryException) { - AppMsg.makeText(getActivity(), R.string.error_keyserver_query, - AppMsg.STYLE_ALERT).show(); - } - default: break; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java index 0fdc019d0..3f15e64f0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java @@ -94,14 +94,10 @@ public class ImportKeysListKeybaseLoader mEntryList.addAll(searchResult); mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, null); - } catch (Keyserver.InsufficientQuery e) { - mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); } catch (Keyserver.QueryException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); - } catch (Keyserver.TooManyResponses e) { + } catch (Keyserver.QueryNeedsRepairException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); } - } - } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java index 1b8d7d30e..4b2af14a9 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java @@ -116,11 +116,9 @@ public class ImportKeysListServerLoader mEntryList.addAll(searchResult); } mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, null); - } catch (Keyserver.InsufficientQuery e) { - mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); } catch (Keyserver.QueryException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); - } catch (Keyserver.TooManyResponses e) { + } catch (Keyserver.QueryNeedsRepairException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); } } -- cgit v1.2.3 From 1ff3962acc755e44a011dd9ab9ced4d3593d1fb9 Mon Sep 17 00:00:00 2001 From: Tim Bray Date: Thu, 22 May 2014 17:04:31 -0700 Subject: Add Log.d for QueryFailedException --- .../java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java index 9c05dcc65..d297d8b3f 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java @@ -292,6 +292,8 @@ public class ImportKeysListFragment extends ListFragment implements } else if (error instanceof Keyserver.TooManyResponsesException) { AppMsg.makeText(getActivity(), R.string.error_keyserver_too_many_responses, AppMsg.STYLE_ALERT).show(); + } else if (error instanceof Keyserver.QueryException) { + Log.d(Constants.TAG, "Key server query failed: " + error.getLocalizedMessage()); } break; -- cgit v1.2.3 From 58da3d12b0a59a32054478c53e6c5a219b71f61f Mon Sep 17 00:00:00 2001 From: Tim Bray Date: Fri, 23 May 2014 09:42:32 -0700 Subject: Finished cleaning up rebase conflicts post Keyserver exception refactor --- .../keychain/keyimport/HkpKeyserver.java | 14 ++++++------- .../keychain/keyimport/KeybaseKeyserver.java | 24 +++++++++++----------- .../keychain/keyimport/Keyserver.java | 9 ++++---- .../keychain/ui/ImportKeysListFragment.java | 14 ++++++------- .../ui/adapter/ImportKeysListKeybaseLoader.java | 2 +- .../ui/adapter/ImportKeysListServerLoader.java | 2 +- 6 files changed, 33 insertions(+), 32 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java index 202b750e4..5969455bd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/HkpKeyserver.java @@ -166,12 +166,12 @@ public class HkpKeyserver extends Keyserver { mPort = port; } - private String query(String request) throws QueryException, HttpError { + private String query(String request) throws QueryFailedException, HttpError { InetAddress ips[]; try { ips = InetAddress.getAllByName(mHost); } catch (UnknownHostException e) { - throw new QueryException(e.toString()); + throw new QueryFailedException(e.toString()); } for (int i = 0; i < ips.length; ++i) { try { @@ -196,11 +196,11 @@ public class HkpKeyserver extends Keyserver { } } - throw new QueryException("querying server(s) for '" + mHost + "' failed"); + throw new QueryFailedException("querying server(s) for '" + mHost + "' failed"); } @Override - public ArrayList search(String query) throws QueryException, + public ArrayList search(String query) throws QueryFailedException, QueryNeedsRepairException { ArrayList results = new ArrayList(); @@ -231,7 +231,7 @@ public class HkpKeyserver extends Keyserver { throw new QueryTooShortException(); } } - throw new QueryException("querying server(s) for '" + mHost + "' failed"); + throw new QueryFailedException("querying server(s) for '" + mHost + "' failed"); } final Matcher matcher = PUB_KEY_LINE.matcher(data); @@ -287,7 +287,7 @@ public class HkpKeyserver extends Keyserver { } @Override - public String get(String keyIdHex) throws QueryException { + public String get(String keyIdHex) throws QueryFailedException { HttpClient client = new DefaultHttpClient(); try { String query = "http://" + mHost + ":" + mPort + @@ -296,7 +296,7 @@ public class HkpKeyserver extends Keyserver { HttpGet get = new HttpGet(query); HttpResponse response = client.execute(get); if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { - throw new QueryException("not found"); + throw new QueryFailedException("not found"); } HttpEntity entity = response.getEntity(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java index ec4b61671..f9b6abf18 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/KeybaseKeyserver.java @@ -34,7 +34,7 @@ public class KeybaseKeyserver extends Keyserver { private String mQuery; @Override - public ArrayList search(String query) throws QueryException, + public ArrayList search(String query) throws QueryFailedException, QueryNeedsRepairException { ArrayList results = new ArrayList(); @@ -65,13 +65,13 @@ public class KeybaseKeyserver extends Keyserver { } } catch (Exception e) { Log.e(Constants.TAG, "keybase result parsing error", e); - throw new QueryException("Unexpected structure in keybase search result: " + e.getMessage()); + throw new QueryFailedException("Unexpected structure in keybase search result: " + e.getMessage()); } return results; } - private JSONObject getUser(String keybaseId) throws QueryException { + private JSONObject getUser(String keybaseId) throws QueryFailedException { try { return getFromKeybase("_/api/1.0/user/lookup.json?username=", keybaseId); } catch (Exception e) { @@ -79,11 +79,11 @@ public class KeybaseKeyserver extends Keyserver { if (keybaseId != null) { detail = ". Query was for user '" + keybaseId + "'"; } - throw new QueryException(e.getMessage() + detail); + throw new QueryFailedException(e.getMessage() + detail); } } - private ImportKeysListEntry makeEntry(JSONObject match) throws QueryException, JSONException { + private ImportKeysListEntry makeEntry(JSONObject match) throws QueryFailedException, JSONException { final ImportKeysListEntry entry = new ImportKeysListEntry(); entry.setQuery(mQuery); @@ -128,7 +128,7 @@ public class KeybaseKeyserver extends Keyserver { return entry; } - private JSONObject getFromKeybase(String path, String query) throws QueryException { + private JSONObject getFromKeybase(String path, String query) throws QueryFailedException { try { String url = "https://keybase.io/" + path + URLEncoder.encode(query, "utf8"); Log.d(Constants.TAG, "keybase query: " + url); @@ -144,29 +144,29 @@ public class KeybaseKeyserver extends Keyserver { try { JSONObject json = new JSONObject(text); if (JWalk.getInt(json, "status", "code") != 0) { - throw new QueryException("Keybase autocomplete search failed"); + throw new QueryFailedException("Keybase autocomplete search failed"); } return json; } catch (JSONException e) { - throw new QueryException("Keybase.io query returned broken JSON"); + throw new QueryFailedException("Keybase.io query returned broken JSON"); } } else { String message = readAll(conn.getErrorStream(), conn.getContentEncoding()); - throw new QueryException("Keybase.io query error (status=" + response + + throw new QueryFailedException("Keybase.io query error (status=" + response + "): " + message); } } catch (Exception e) { - throw new QueryException("Keybase.io query error"); + throw new QueryFailedException("Keybase.io query error"); } } @Override - public String get(String id) throws QueryException { + public String get(String id) throws QueryFailedException { try { JSONObject user = getUser(id); return JWalk.getString(user, "them", "public_keys", "primary", "bundle"); } catch (Exception e) { - throw new QueryException(e.getMessage()); + throw new QueryFailedException(e.getMessage()); } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java index 7313a159b..868f543f0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/Keyserver.java @@ -24,10 +24,10 @@ import java.io.InputStream; import java.util.List; public abstract class Keyserver { - public static class QueryException extends Exception { + public static class QueryFailedException extends Exception { private static final long serialVersionUID = 2703768928624654512L; - public QueryException(String message) { + public QueryFailedException(String message) { super(message); } } @@ -41,16 +41,17 @@ public abstract class Keyserver { } public static class QueryTooShortException extends QueryNeedsRepairException { + private static final long serialVersionUID = 2703768928624654514L; } public static class AddKeyException extends Exception { private static final long serialVersionUID = -507574859137295530L; } - abstract List search(String query) throws QueryException, + abstract List search(String query) throws QueryFailedException, QueryNeedsRepairException; - abstract String get(String keyIdHex) throws QueryException; + abstract String get(String keyIdHex) throws QueryFailedException; abstract void add(String armoredKey) throws AddKeyException; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java index d297d8b3f..d9bd9b782 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysListFragment.java @@ -211,7 +211,7 @@ public class ImportKeysListFragment extends ListFragment implements @Override public Loader>> - onCreateLoader(int id, Bundle args) { + onCreateLoader(int id, Bundle args) { switch (id) { case LOADER_ID_BYTES: { InputData inputData = getInputData(mKeyBytes, mDataUri); @@ -285,15 +285,15 @@ public class ImportKeysListFragment extends ListFragment implements } else if (error instanceof Keyserver.QueryTooShortException) { AppMsg.makeText(getActivity(), R.string.error_keyserver_insufficient_query, AppMsg.STYLE_ALERT).show(); - } else if (error instanceof Keyserver.QueryException) { - String alert = getActivity().getString(R.string.error_searching_keys); - alert = alert + " (" + error.getLocalizedMessage() + ")"; - AppMsg.makeText(getActivity(), alert, AppMsg.STYLE_ALERT).show(); } else if (error instanceof Keyserver.TooManyResponsesException) { AppMsg.makeText(getActivity(), R.string.error_keyserver_too_many_responses, AppMsg.STYLE_ALERT).show(); - } else if (error instanceof Keyserver.QueryException) { - Log.d(Constants.TAG, "Key server query failed: " + error.getLocalizedMessage()); + } else if (error instanceof Keyserver.QueryFailedException) { + Log.d(Constants.TAG, + "Unrecoverable keyserver query error: " + error.getLocalizedMessage()); + String alert = getActivity().getString(R.string.error_searching_keys); + alert = alert + " (" + error.getLocalizedMessage() + ")"; + AppMsg.makeText(getActivity(), alert, AppMsg.STYLE_ALERT).show(); } break; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java index 3f15e64f0..e8c5da5a7 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListKeybaseLoader.java @@ -94,7 +94,7 @@ public class ImportKeysListKeybaseLoader mEntryList.addAll(searchResult); mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, null); - } catch (Keyserver.QueryException e) { + } catch (Keyserver.QueryFailedException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); } catch (Keyserver.QueryNeedsRepairException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java index 4b2af14a9..4eb6f158b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListServerLoader.java @@ -116,7 +116,7 @@ public class ImportKeysListServerLoader mEntryList.addAll(searchResult); } mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, null); - } catch (Keyserver.QueryException e) { + } catch (Keyserver.QueryFailedException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); } catch (Keyserver.QueryNeedsRepairException e) { mEntryListWrapper = new AsyncTaskResultWrapper>(mEntryList, e); -- cgit v1.2.3