Check cast.
This commit is contained in:
@ -43,9 +43,8 @@ import ch.psi.daq.domain.reader.Backend;
|
|||||||
import ch.psi.daq.domain.request.validate.RequestProviderValidator;
|
import ch.psi.daq.domain.request.validate.RequestProviderValidator;
|
||||||
import ch.psi.daq.queryrest.query.QueryManager;
|
import ch.psi.daq.queryrest.query.QueryManager;
|
||||||
import ch.psi.daq.queryrest.response.AbstractHTTPResponse;
|
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.JSONHTTPResponse;
|
||||||
import ch.psi.daq.queryrest.response.json.JSONResponseStreamWriter;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
public class QueryRestController {
|
public class QueryRestController {
|
||||||
@ -58,23 +57,17 @@ public class QueryRestController {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ApplicationContext appContext;
|
private ApplicationContext appContext;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private Validator queryValidator;
|
private Validator queryValidator;
|
||||||
private Validator requestProviderValidator = new RequestProviderValidator();
|
private Validator requestProviderValidator = new RequestProviderValidator();
|
||||||
|
|
||||||
@Resource
|
|
||||||
private JSONResponseStreamWriter jsonResponseStreamWriter;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private CSVResponseStreamWriter csvResponseStreamWriter;
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private QueryManager queryManager;
|
private QueryManager queryManager;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ObjectMapper objectMapper;
|
private ObjectMapper objectMapper;
|
||||||
|
|
||||||
private Response defaultResponse = new JSONHTTPResponse();
|
private Response defaultResponse = new JSONHTTPResponse();
|
||||||
|
|
||||||
@InitBinder
|
@InitBinder
|
||||||
@ -179,7 +172,19 @@ public class QueryRestController {
|
|||||||
try {
|
try {
|
||||||
LOGGER.debug("Executing queries '{}'", queries);
|
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) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("Failed to execute query '{}'.", queries, e);
|
LOGGER.error("Failed to execute query '{}'.", queries, e);
|
||||||
|
Reference in New Issue
Block a user