in src/main/java/org/apache/datasketches/server/BaseSketchesQueryHandler.java [107:155]
public void handle(final String target,
final Request baseRequest,
final HttpServletRequest request,
final HttpServletResponse response) throws IOException {
JsonElement query = null;
if (!queryExempt && ((query = checkMethodAndReadJson(baseRequest, request, response)) == null)) {
return;
}
// error messages will be wrapped in json
response.setCharacterEncoding("utf-8");
response.setContentType("application/json");
JsonElement result = null;
try {
if (query == null) {
result = processQuery(null);
} else if (query.isJsonArray()) {
for (final JsonElement subQuery : query.getAsJsonArray()) {
final JsonObject subResult = processQuery(subQuery.getAsJsonObject());
if (subResult != null) {
// lazy initialization to avoid possibly empty array
if (result == null) {
result = new JsonArray(((JsonArray) query).size());
}
((JsonArray) result).add(subResult);
}
}
} else {
//result = callProcessQuery((JsonObject) query);
result = processQuery((JsonObject) query);
}
if (result != null) {
//response.getWriter().print(result.toString());
response.getWriter().print(new GsonBuilder().setPrettyPrinting().create().toJson(result));
}
// we're ok if we reach here without an exception
response.setStatus(HttpServletResponse.SC_OK);
} catch (final Exception e) {
final JsonObject error = new JsonObject();
error.addProperty(ERROR_KEY, e.getMessage());
response.setStatus(UNPROCESSABLE_ENTITY);
}
baseRequest.setHandled(true);
}