From bca234a9463da2e000dadaef6bb8cf47a488e02c Mon Sep 17 00:00:00 2001 From: qGYdXbY2 <47661341+qGYdXbY2@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:43:06 +0100 Subject: [PATCH] fix 500s on tile request Signed-off-by: qGYdXbY2 <47661341+qGYdXbY2@users.noreply.github.com> --- .../here/xyz/hub/rest/FeatureQueryApi.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/xyz-hub-service/src/main/java/com/here/xyz/hub/rest/FeatureQueryApi.java b/xyz-hub-service/src/main/java/com/here/xyz/hub/rest/FeatureQueryApi.java index 5037514148..d0858ec308 100644 --- a/xyz-hub-service/src/main/java/com/here/xyz/hub/rest/FeatureQueryApi.java +++ b/xyz-hub-service/src/main/java/com/here/xyz/hub/rest/FeatureQueryApi.java @@ -338,13 +338,12 @@ else if( acceptTypeSuffix != null ) try { WebMercatorTile tileAddress = null; HQuad hereTileAddress = null; - if ("tms".equals(tileType)) { - tileAddress = WebMercatorTile.forTMS(tileId); - } else if ("web".equals(tileType)) { - tileAddress = WebMercatorTile.forWeb(tileId); - } else if ("quadkey".equals(tileType)) { - tileAddress = WebMercatorTile.forQuadkey(tileId); - } else if ("here".equals(tileType)) { + + switch( tileType ) { + case "tms" : tileAddress = WebMercatorTile.forTMS(tileId); break; + case "web" : tileAddress = WebMercatorTile.forWeb(tileId); break; + case "quadkey" : tileAddress = WebMercatorTile.forQuadkey(tileId); break; + case "here" : if (tileId.contains("_")) { String[] levelRowColumnArray = tileId.split("_"); if (levelRowColumnArray.length == 3) { @@ -358,6 +357,10 @@ else if( acceptTypeSuffix != null ) } else { hereTileAddress = new HQuad(tileId, Service.configuration.USE_BASE_4_H_TILES); } + break; + + default: + throw new HttpException(BAD_REQUEST, String.format("Invalid path argument {type} of tile request '%s' != [tms,web,quadkey,here]",tileType)); } if (tileAddress != null) { @@ -373,7 +376,10 @@ else if( acceptTypeSuffix != null ) event.setX(hereTileAddress.x); event.setY(hereTileAddress.y); event.setQuadkey(hereTileAddress.quadkey); - } + } + else + throw new IllegalArgumentException(); + } catch (IllegalArgumentException e) { throw new HttpException(BAD_REQUEST, "Invalid argument tileId."); }