From 8e182617c6b115f46bb5573bc795e861b1ca64ac Mon Sep 17 00:00:00 2001 From: Bananeweizen Date: Sun, 18 Nov 2012 11:00:47 +0100 Subject: fix #980: c:geo doesn't handle unknown trackables --- main/src/cgeo/geocaching/connector/gc/GCConstants.java | 5 +++++ main/src/cgeo/geocaching/connector/gc/GCParser.java | 4 ++++ 2 files changed, 9 insertions(+) (limited to 'main/src') diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java index 356e9a2..69c2d5b 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java +++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java @@ -77,6 +77,11 @@ public final class GCConstants { */ public final static Pattern PATTERN_TRACKABLE_GUID = Pattern.compile("]*>[^<]*"); public final static Pattern PATTERN_TRACKABLE_GEOCODE = Pattern.compile("(TB[0-9A-Z]+)[^<]* to reference this item."); + + // multiple error codes, depending on the search term for the trackable code + public final static String ERROR_TB_DOES_NOT_EXIST = "does not exist in the system"; + public final static String ERROR_TB_ELEMENT_EXCEPTION = "ElementNotFound Exception"; + public final static String ERROR_TB_ARITHMETIC_OVERFLOW = "operation resulted in an overflow"; /** * some parts of the webpage don't correctly encode the name, therefore this pattern must be checked with a * trackable name that needs HTML encoding diff --git a/main/src/cgeo/geocaching/connector/gc/GCParser.java b/main/src/cgeo/geocaching/connector/gc/GCParser.java index bc4b855..bc929e2 100644 --- a/main/src/cgeo/geocaching/connector/gc/GCParser.java +++ b/main/src/cgeo/geocaching/connector/gc/GCParser.java @@ -1259,6 +1259,10 @@ public abstract class GCParser { return null; } + if (page.contains(GCConstants.ERROR_TB_DOES_NOT_EXIST) || page.contains(GCConstants.ERROR_TB_ARITHMETIC_OVERFLOW) || page.contains(GCConstants.ERROR_TB_ELEMENT_EXCEPTION)) { + return null; + } + final cgTrackable trackable = new cgTrackable(); // trackable geocode -- cgit v1.1