summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-07-15 13:26:43 +0000
committerArne Juul <arnej@verizonmedia.com>2020-07-15 15:39:26 +0000
commit24ed2059c3f98cdf81ce84a340e445992aaf3407 (patch)
treee7d9d250b1e0d3dcec9ade7ca215a8004d54c943 /vespajlib
parentb9cf6c807a99186edcc2e740d73ad505311e32c9 (diff)
add input string in exception messages
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java30
-rw-r--r--vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java36
2 files changed, 33 insertions, 33 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java b/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java
index 530c5b3a2a9..cf23a24e702 100644
--- a/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java
+++ b/vespajlib/src/main/java/com/yahoo/geo/OneDegreeParser.java
@@ -44,7 +44,7 @@ class OneDegreeParser {
pos++;
return 0;
} else if (pos > len) {
- throw new IllegalArgumentException("position after end of string");
+ throw new IllegalArgumentException("position after end of string when parsing <"+parseString+">");
} else {
return parseString.charAt(pos++);
}
@@ -120,7 +120,7 @@ class OneDegreeParser {
// did we find a valid char?
boolean valid = false;
if (pos == lastpos) {
- throw new RuntimeException("internal logic error at '"+parseString+"' pos:"+pos);
+ throw new IllegalArgumentException("internal logic error at <"+parseString+"> pos:"+pos);
} else {
lastpos = pos;
}
@@ -131,7 +131,7 @@ class OneDegreeParser {
if (isDigit(ch) || ch == '.') {
valid = true;
if (foundDigits) {
- throw new IllegalArgumentException("found digits after not consuming previous digits");
+ throw new IllegalArgumentException("found digits after not consuming previous digits when parsing <"+parseString+">");
}
double divider = 1.0;
foundDot = false;
@@ -153,7 +153,7 @@ class OneDegreeParser {
}
}
if (!foundDigits) {
- throw new IllegalArgumentException("just a . is not a valid number");
+ throw new IllegalArgumentException("just a . is not a valid number when parsing <"+parseString+">");
}
accum /= divider;
}
@@ -163,23 +163,23 @@ class OneDegreeParser {
if (ch == '\u00B0' || ch == 'o') {
valid = true;
if (degSet) {
- throw new IllegalArgumentException("degrees sign only valid just after degrees");
+ throw new IllegalArgumentException("degrees sign only valid just after degrees when parsing <"+parseString+">");
}
if (!foundDigits) {
- throw new IllegalArgumentException("must have number before degrees sign");
+ throw new IllegalArgumentException("must have number before degrees sign when parsing <"+parseString+">");
}
if (foundDot) {
- throw new IllegalArgumentException("cannot have fractional degrees before degrees sign");
+ throw new IllegalArgumentException("cannot have fractional degrees before degrees sign when parsing <"+parseString+">");
}
ch = getNextChar();
}
// apostrophe is a separator after minutes, before seconds
if (ch == '\'') {
if (minSet || !degSet || !foundDigits) {
- throw new IllegalArgumentException("minutes sign only valid just after minutes");
+ throw new IllegalArgumentException("minutes sign only valid just after minutes when parsing <"+parseString+">");
}
if (foundDot) {
- throw new IllegalArgumentException("cannot have fractional minutes before minutes sign");
+ throw new IllegalArgumentException("cannot have fractional minutes before minutes sign when parsing <"+parseString+">");
}
ch = getNextChar();
}
@@ -190,7 +190,7 @@ class OneDegreeParser {
if (degSet) {
if (minSet) {
if (secSet) {
- throw new IllegalArgumentException("extra number after full field");
+ throw new IllegalArgumentException("extra number after full field when parsing <"+parseString+">");
} else {
seconds = accum;
secSet = true;
@@ -218,7 +218,7 @@ class OneDegreeParser {
if (isCompassDirection(ch)) {
valid = true;
if (dirSet) {
- throw new IllegalArgumentException("already set direction once, cannot add direction: "+ch);
+ throw new IllegalArgumentException("already set direction once, cannot add direction: "+ch+" when parsing <"+parseString+">");
}
dirSet = true;
if (ch == 'S' || ch == 'W') {
@@ -245,7 +245,7 @@ class OneDegreeParser {
}
}
if (!degSet) {
- throw new IllegalArgumentException("end of field without any number seen");
+ throw new IllegalArgumentException("end of field without any number seen when parsing <"+parseString+">");
}
degrees += minutes / 60.0;
degrees += seconds / 3600.0;
@@ -253,13 +253,13 @@ class OneDegreeParser {
if (findingLatitude) {
if (degrees < -90.0 || degrees > 90.0) {
- throw new IllegalArgumentException("out of range [-90,+90]: "+degrees);
+ throw new IllegalArgumentException("out of range [-90,+90]: "+degrees+" when parsing <"+parseString+">");
}
latitude = degrees;
foundLatitude = true;
} else if (findingLongitude) {
if (degrees < -180.0 || degrees > 180.0) {
- throw new IllegalArgumentException("out of range [-180,+180]: "+degrees);
+ throw new IllegalArgumentException("out of range [-180,+180]: "+degrees+" when parsing <"+parseString+">");
}
longitude = degrees;
foundLongitude = true;
@@ -267,7 +267,7 @@ class OneDegreeParser {
break;
}
if (!valid) {
- throw new IllegalArgumentException("invalid character: "+ch);
+ throw new IllegalArgumentException("invalid character: "+ch+" when parsing <"+parseString+">");
}
} while (ch != 0);
// everything parsed OK
diff --git a/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java b/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java
index 9543739d4cc..b0da6a0a131 100644
--- a/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java
+++ b/vespajlib/src/test/java/com/yahoo/geo/OneDegreeParserTestCase.java
@@ -157,21 +157,21 @@ public class OneDegreeParserTestCase {
@Test
public void testAboveBoundary() {
String message = parseException(false, "N90.0001");
- assertEquals("out of range [-90,+90]: 90.0001", message);
+ assertEquals("out of range [-90,+90]: 90.0001 when parsing <N90.0001>", message);
message = parseException(false, "S90.0001");
- assertEquals("out of range [-90,+90]: -90.0001", message);
+ assertEquals("out of range [-90,+90]: -90.0001 when parsing <S90.0001>", message);
message = parseException(true, "E180.0001");
- assertEquals("out of range [-180,+180]: 180.0001", message);
+ assertEquals("out of range [-180,+180]: 180.0001 when parsing <E180.0001>", message);
message = parseException(true, "W180.0001");
- assertEquals("out of range [-180,+180]: -180.0001", message);
+ assertEquals("out of range [-180,+180]: -180.0001 when parsing <W180.0001>", message);
message = parseException(false, "N90.000001");
- assertEquals("out of range [-90,+90]: 90.000001", message);
+ assertEquals("out of range [-90,+90]: 90.000001 when parsing <N90.000001>", message);
message = parseException(false, "S90.000001");
- assertEquals("out of range [-90,+90]: -90.000001", message);
+ assertEquals("out of range [-90,+90]: -90.000001 when parsing <S90.000001>", message);
message = parseException(true, "E180.000001");
- assertEquals("out of range [-180,+180]: 180.000001", message);
+ assertEquals("out of range [-180,+180]: 180.000001 when parsing <E180.000001>", message);
message = parseException(true, "W180.000001");
- assertEquals("out of range [-180,+180]: -180.000001", message);
+ assertEquals("out of range [-180,+180]: -180.000001 when parsing <W180.000001>", message);
}
/**
@@ -180,25 +180,25 @@ public class OneDegreeParserTestCase {
@Test
public void testInputErrors() {
String message = parseException(false, "N90S90");
- assertEquals("already set direction once, cannot add direction: S", message);
+ assertEquals("already set direction once, cannot add direction: S when parsing <N90S90>", message);
message = parseException(false, "E120W120");
- assertEquals("already set direction once, cannot add direction: W", message);
+ assertEquals("already set direction once, cannot add direction: W when parsing <E120W120>", message);
message = parseException(false, "E");
- assertEquals("end of field without any number seen", message);
+ assertEquals("end of field without any number seen when parsing <E>", message);
message = parseException(false, "");
- assertEquals("end of field without any number seen", message);
+ assertEquals("end of field without any number seen when parsing <>", message);
message = parseException(false, "NW25");
- assertEquals("already set direction once, cannot add direction: W", message);
+ assertEquals("already set direction once, cannot add direction: W when parsing <NW25>", message);
message = parseException(false, "N16.25\u00B0");
- assertEquals("cannot have fractional degrees before degrees sign", message);
+ assertEquals("cannot have fractional degrees before degrees sign when parsing <N16.25\u00B0>", message);
message = parseException(false, "N16\u00B022.40'");
- assertEquals("cannot have fractional minutes before minutes sign", message);
+ assertEquals("cannot have fractional minutes before minutes sign when parsing <N16\u00B022.40'>", message);
message = parseException(false, "");
- assertEquals("end of field without any number seen", message);
+ assertEquals("end of field without any number seen when parsing <>", message);
message = parseException(false, "Yahoo!");
- assertEquals("invalid character: Y", message);
+ assertEquals("invalid character: Y when parsing <Yahoo!>", message);
message = parseException(false, "N63O025.105");
- assertEquals("invalid character: O", message);
+ assertEquals("invalid character: O when parsing <N63O025.105>", message);
}
}