From b27b43a6f6fe732378a2afc6896a3232139d957f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=A4rki?= Date: Wed, 8 Jun 2016 08:46:42 +0200 Subject: [PATCH] Check cast. --- .../controller/QueryRestController.java | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/ch/psi/daq/queryrest/controller/QueryRestController.java b/src/main/java/ch/psi/daq/queryrest/controller/QueryRestController.java index f32c1d2..8706227 100644 --- a/src/main/java/ch/psi/daq/queryrest/controller/QueryRestController.java +++ b/src/main/java/ch/psi/daq/queryrest/controller/QueryRestController.java @@ -43,9 +43,8 @@ import ch.psi.daq.domain.reader.Backend; import ch.psi.daq.domain.request.validate.RequestProviderValidator; import ch.psi.daq.queryrest.query.QueryManager; import ch.psi.daq.queryrest.response.AbstractHTTPResponse; -import ch.psi.daq.queryrest.response.csv.CSVResponseStreamWriter; +import ch.psi.daq.queryrest.response.PolymorphicResponseMixIn; import ch.psi.daq.queryrest.response.json.JSONHTTPResponse; -import ch.psi.daq.queryrest.response.json.JSONResponseStreamWriter; @RestController public class QueryRestController { @@ -58,23 +57,17 @@ public class QueryRestController { @Resource private ApplicationContext appContext; - + @Resource private Validator queryValidator; private Validator requestProviderValidator = new RequestProviderValidator(); - @Resource - private JSONResponseStreamWriter jsonResponseStreamWriter; - - @Resource - private CSVResponseStreamWriter csvResponseStreamWriter; - @Resource private QueryManager queryManager; - + @Resource private ObjectMapper objectMapper; - + private Response defaultResponse = new JSONHTTPResponse(); @InitBinder @@ -179,7 +172,19 @@ public class QueryRestController { try { LOGGER.debug("Executing queries '{}'", queries); - ((AbstractHTTPResponse)queries.getResponseOrDefault(defaultResponse)).respond(appContext, queries, res); + Response response = queries.getResponseOrDefault(defaultResponse); + if (response instanceof AbstractHTTPResponse) { + ((AbstractHTTPResponse) response).respond(appContext, queries, res); + } else { + String message = + String.format( + "Expecting Response of type '%s' but received '%s'. Check JSON deserialization defined in '%s'", + AbstractHTTPResponse.class.getName(), response.getClass().getName(), + PolymorphicResponseMixIn.class.getName()); + LOGGER.error(message); + throw new IllegalArgumentException(message); + } + } catch (Exception e) { LOGGER.error("Failed to execute query '{}'.", queries, e);