public JsonObject executeStatementExpectFailure(String command, String path, String body)
			throws ElasticException {
		HttpURLConnection connection = null;
		try {
			URL httpURL = new URL(httpURLbase + path);
			connection = (HttpURLConnection) httpURL.openConnection();
			connection.setRequestMethod(command);
			connection.setRequestProperty("Content-Type", "application/json");
			connection.setDoOutput(true);
			try (Writer writer = new OutputStreamWriter(connection.getOutputStream())) {
				writer.write(body);
			}
			lastResponseCode = connection.getResponseCode();
			JsonObject resp = grabResponse(connection);
			return resp;
		}
		catch (IOException e) {
			throw new ElasticException("Error sending request: " + e.getMessage());
		}
		catch (JsonParseException e) {
			throw new ElasticException("Error parsing response: " + e.getMessage());
		}
		finally {
			if (connection != null) {
				connection.disconnect();
			}
		}
	}
Execute an elastic search statement and return the JSON response to user
Do not throw an exception on failure, just return the error response
@param command is the type of command
@param path is the overarching {@code index/type/<command>}
@param body is JSON document describing the request
@return the parsed response as a JsonObject
@throws ElasticException for any problems with the connection
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/elastic/ElasticConnection.java