aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/connector/gc/GCParser.java
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2013-09-15 18:47:17 +0200
committerSamuel Tardieu <sam@rfc1149.net>2013-09-15 18:51:33 +0200
commit40d66b9b9a14cd65f36ccd13ae962058a9d9d4ca (patch)
treefe864c74a0e721f71b78c0889ff328e7ba11c5b0 /main/src/cgeo/geocaching/connector/gc/GCParser.java
parent4cc85b839b7f4f15a92ec1070059bbda13c03e98 (diff)
downloadcgeo-40d66b9b9a14cd65f36ccd13ae962058a9d9d4ca.zip
cgeo-40d66b9b9a14cd65f36ccd13ae962058a9d9d4ca.tar.gz
cgeo-40d66b9b9a14cd65f36ccd13ae962058a9d9d4ca.tar.bz2
Do not retry loading a page after 404 from gc.com
When a page cannot be found, geocaching.com returns with a 404. Retrying while logged in would not change anything, and we should not consider ourselves as logged as guest because of this error.
Diffstat (limited to 'main/src/cgeo/geocaching/connector/gc/GCParser.java')
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCParser.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java
index ce00e87..9c9e06d 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCParser.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java
@@ -40,6 +40,7 @@ import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -843,6 +844,7 @@ public abstract class GCParser {
* @param recaptchaReceiver
* @return
*/
+ @Nullable
private static SearchResult searchByAny(final CacheType cacheType, final boolean my, final boolean showCaptcha, final Parameters params, RecaptchaReceiver recaptchaReceiver) {
insertCacheType(params, cacheType);
@@ -854,6 +856,7 @@ public abstract class GCParser {
Log.e("GCParser.searchByAny: No data from server");
return null;
}
+ assert page != null;
final SearchResult searchResult = parseSearch(fullUri, page, showCaptcha, recaptchaReceiver);
if (searchResult == null || CollectionUtils.isEmpty(searchResult.getGeocodes())) {
@@ -940,6 +943,7 @@ public abstract class GCParser {
return null;
}
+ @Nullable
public static Trackable searchTrackable(final String geocode, final String guid, final String id) {
if (StringUtils.isBlank(geocode) && StringUtils.isBlank(guid) && StringUtils.isBlank(id)) {
Log.w("GCParser.searchTrackable: No geocode nor guid nor id given");
@@ -964,6 +968,7 @@ public abstract class GCParser {
Log.e("GCParser.searchTrackable: No data from server");
return trackable;
}
+ assert page != null;
trackable = parseTrackable(page, geocode);
if (trackable == null) {
@@ -1132,6 +1137,7 @@ public abstract class GCParser {
Log.e("GCParser.uploadLogImage: No data from server");
return new ImmutablePair<StatusCode, String>(StatusCode.UNKNOWN_ERROR, null);
}
+ assert page != null;
final String[] viewstates = Login.getViewstates(page);
@@ -1289,7 +1295,8 @@ public abstract class GCParser {
return !guidOnPage; // on watch list (=error) / not on watch list
}
- static String requestHtmlPage(final String geocode, final String guid, final String log, final String numlogs) {
+ @Nullable
+ static String requestHtmlPage(@Nullable final String geocode, @Nullable final String guid, final String log, final String numlogs) {
final Parameters params = new Parameters("decrypt", "y");
if (StringUtils.isNotBlank(geocode)) {
params.put("wp", geocode);