Accept direction ID as String instead if Integer (fix #2)

This commit is contained in:
Stefan Kalscheuer 2018-11-16 11:04:27 +01:00
parent ee91f05898
commit b9656b386a
5 changed files with 20 additions and 15 deletions

View File

@ -1,3 +1,6 @@
## 1.1.3 [unreleased]
* [fix] Fixed issue with direction ID as `String` instead if `Integer` (#2)
## 1.1.3 [2018-11-13] ## 1.1.3 [2018-11-13]
* [security] Updates Jackson dependency 2.9.4 to 2.9.7 (CVE-2018-7489) * [security] Updates Jackson dependency 2.9.4 to 2.9.7 (CVE-2018-7489)
* [improvement] Client and model classes implement `Serializable` * [improvement] Client and model classes implement `Serializable`

View File

@ -6,7 +6,7 @@
<groupId>de.stklcode.pubtrans</groupId> <groupId>de.stklcode.pubtrans</groupId>
<artifactId>juraclient</artifactId> <artifactId>juraclient</artifactId>
<version>1.1.3</version> <version>1.1.4-SNAPSHOT</version>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View File

@ -176,13 +176,15 @@ public final class Trip implements Model {
throw Model.typeErrorString(LINE_NAME, raw.get(LINE_NAME).getClass()); throw Model.typeErrorString(LINE_NAME, raw.get(LINE_NAME).getClass());
} }
if (raw.get(DIRECTION_ID) instanceof Integer) { if (raw.get(DIRECTION_ID) instanceof String // Also accept Strings (#2)
directionID = (Integer) raw.get(DIRECTION_ID); || raw.get(DIRECTION_ID) instanceof Integer
|| raw.get(DIRECTION_ID) instanceof Long) {
directionID = Integer.valueOf(raw.get(DIRECTION_ID).toString());
if (directionID < 0 || directionID > 2) { if (directionID < 0 || directionID > 2) {
throw new IOException("Direction out of range. Expected 1 or 2, found " + directionID); throw new IOException("Direction out of range. Expected 1 or 2, found " + directionID);
} }
} else { } else {
throw Model.typeError(DIRECTION_ID, raw.get(DIRECTION_ID).getClass(), "Integer"); throw Model.typeError(DIRECTION_ID, raw.get(DIRECTION_ID).getClass(), "String/Long/Integer");
} }
if (raw.get(DESTINATION_NAME) instanceof String) { if (raw.get(DESTINATION_NAME) instanceof String) {

View File

@ -163,7 +163,7 @@ public class TripTest {
invalid = new ArrayList<>(raw); invalid = new ArrayList<>(raw);
invalid.remove(10); invalid.remove(10);
invalid.add(10, "1"); invalid.add(10, "7"); // Strings are generally OK, but 7 is out of range (#2).
try { try {
new Trip(invalid); new Trip(invalid);
fail("Creation of Trip with invalid directionID field successfull"); fail("Creation of Trip with invalid directionID field successfull");

View File

@ -1,11 +1,11 @@
[4,"2.0",1483362959788] [4,"2.0",1483362959788]
[1,"Uniklinik","100600","H.2",0,50.7756388,6.04425,11,"33","33",1,"Aachen Fuchserde","Aachen Fuchserde","318",92000043013001,1483362935000] [1,"Uniklinik","100600","H.2",0,50.7756388,6.04425,11,"33","33","1","Aachen Fuchserde","Aachen Fuchserde","318",92000043013001,1483362935000]
[1,"Uniklinik","100600","H.1",0,50.7756388,6.04425,1,"5","5",1,"Driescher Hof-Brand","Driescher Hof-Brand","312",92000282009001,1483362936000] [1,"Uniklinik","100600","H.1",0,50.7756388,6.04425,1,"5","5","1","Driescher Hof-Brand","Driescher Hof-Brand","312",92000282009001,1483362936000]
[1,"Uniklinik","100600","H.4",0,50.7756388,6.04425,33,"45","45",1,"Uniklinik","Uniklinik","317",92000285009001,1483363294000] [1,"Uniklinik","100600","H.4",0,50.7756388,6.04425,33,"45","45","1","Uniklinik","Uniklinik","317",92000285009001,1483363294000]
[1,"Uniklinik","100600","H.3",0,50.7756388,6.04425,28,"10","3.B",1,"Uniklinik-Ponttor-Hbf.","Uniklinik-Ponttor-Hbf.","347",92000053015001,1483363039000] [1,"Uniklinik","100600","H.3",0,50.7756388,6.04425,28,"10","3.B","1","Uniklinik-Ponttor-Hbf.","Uniklinik-Ponttor-Hbf.","347",92000053015001,1483363039000]
[1,"Uniklinik","100600","H.3",0,50.7756388,6.04425,29,"33","33",1,"Uniklinik","Uniklinik","529",92000209014001,1483363288000] [1,"Uniklinik","100600","H.3",0,50.7756388,6.04425,29,"33","33","1","Uniklinik","Uniklinik","529",92000209014001,1483363288000]
[1,"Uniklinik","100600","H.2",0,50.7756388,6.04425,1,"73","73",1,"Aachen Bf.Rothe Erde","Aachen Bf.Rothe Erde","315",92000291016001,1483363080000] [1,"Uniklinik","100600","H.2",0,50.7756388,6.04425,1,"73","73","1","Aachen Bf.Rothe Erde","Aachen Bf.Rothe Erde","315",92000291016001,1483363080000]
[1,"Uniklinik","100600","H.3",0,50.7756388,6.04425,29,"10","3.B",1,"Uniklinik-Ponttor-Hbf.","Uniklinik-Ponttor-Hbf.","347",92000053015001,1483363099000] [1,"Uniklinik","100600","H.3",0,50.7756388,6.04425,29,"10","3.B","1","Uniklinik-Ponttor-Hbf.","Uniklinik-Ponttor-Hbf.","347",92000053015001,1483363099000]
[1,"Uniklinik","100600","H.1",0,50.7756388,6.04425,28,"3","3.A",1,"Uniklinik-Schanz-Hbf.","Uniklinik-Schanz-Hbf.","325",92000288012001,1483363080000] [1,"Uniklinik","100600","H.1",0,50.7756388,6.04425,28,"3","3.A","1","Uniklinik-Schanz-Hbf.","Uniklinik-Schanz-Hbf.","325",92000288012001,1483363080000]
[1,"Uniklinik","100600","H.2",0,50.7756388,6.04425,6,"70","70",1,"Aachen Adenauerallee","Aachen Adenauerallee","588",92000225009001,1483363346000] [1,"Uniklinik","100600","H.2",0,50.7756388,6.04425,6,"70","70","1","Aachen Adenauerallee","Aachen Adenauerallee","588",92000225009001,1483363346000]
[1,"Uniklinik","100600","H.1",0,50.7756388,6.04425,1,"3","3.A",1,"Schanz-Hbf.-Ponttor","Schanz-Hbf.-Ponttor","325",92000288013001,1483363380000] [1,"Uniklinik","100600","H.1",0,50.7756388,6.04425,1,"3","3.A","1","Schanz-Hbf.-Ponttor","Schanz-Hbf.-Ponttor","325",92000288013001,1483363380000]