summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-05-24 17:14:30 +0200
committerArne H Juul <arnej@yahoo-inc.com>2017-05-24 17:14:30 +0200
commitb99f11342a015e2934856193d5f11a3673aab924 (patch)
tree7f03b80c4a87f201976516cebdc25580efe5387c /document
parent63c1fb16923cdd19af9d2977624e0e822b75994a (diff)
more readable error if geo coordinates do not parse
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/PositionDataType.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/document/src/main/java/com/yahoo/document/PositionDataType.java b/document/src/main/java/com/yahoo/document/PositionDataType.java
index 816fcd7bdf7..a989422ab92 100644
--- a/document/src/main/java/com/yahoo/document/PositionDataType.java
+++ b/document/src/main/java/com/yahoo/document/PositionDataType.java
@@ -73,10 +73,18 @@ public final class PositionDataType {
DegreesParser d = new DegreesParser(str);
return valueOf((int)(d.longitude * 1000000), (int)(d.latitude * 1000000));
} catch (IllegalArgumentException e) {
- // empty
+ try {
+ String[] arr = str.split(";");
+ if (arr.length == 2) {
+ int x = Integer.parseInt(arr[0]);
+ int y = Integer.parseInt(arr[1]);
+ return valueOf(x, y);
+ }
+ } catch (NumberFormatException nfe) {
+ // empty
+ }
+ throw new IllegalArgumentException("Could not parse '"+str+"' as geo coordinates: "+e.getMessage());
}
- String[] arr = str.split(";", 2);
- return valueOf(Integer.parseInt(arr[0]), Integer.parseInt(arr[1]));
}
public static IntegerFieldValue getXValue(FieldValue pos) {