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.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);
|
||||
|
Reference in New Issue
Block a user