private void throwExceptionOnErrorEntry(JsonParser pointingToErrors) throws IOException { if (pointingToErrors == null) { return; } JsonNode errorsNode = mapper.readTree(pointingToErrors); Optional<JsonNode> optionalErrorNode = StreamSupport.stream(errorsNode.spliterator(), false) .findFirst(); if (optionalErrorNode.isPresent()) { JsonNode errorNode = optionalErrorNode.get(); throw new CypherException(errorNode.findValue("code").asText(), errorNode.findValue("message").asText()); } }
private Result executeRequest(Statement request) { try { Map<String, Object> parameterMap = this.parameterConversion.convertParameters(request.getParameters()); String cypher = cypherModification.apply(request.getStatement()); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Request: {} with params {}", cypher, parameterMap); } return graphDatabaseService.execute(cypher, parameterMap); } catch (QueryExecutionException qee) { throw new CypherException(qee.getStatusCode(), qee.getMessage(), qee); } catch (Exception e) { throw new RuntimeException(e); } } }
public CloseableHttpResponse executeHttpRequest(HttpRequestBase request) throws HttpRequestException { try (CloseableHttpResponse response = HttpRequest .execute(httpClient(), request, configuration.getCredentials())) { HttpEntity responseEntity = response.getEntity(); if (responseEntity != null) { JsonNode responseNode = mapper.readTree(EntityUtils.toString(responseEntity)); LOGGER.debug("Response: {}", responseNode); JsonNode errors = responseNode.findValue("errors"); if (errors.elements().hasNext()) { JsonNode errorNode = errors.elements().next(); throw new CypherException(errorNode.findValue("code").asText(), errorNode.findValue("message").asText()); } } return response; } catch (IOException ioe) { throw new HttpRequestException(request, ioe); } finally { request.releaseConnection(); LOGGER.debug("Thread: {}, Connection released", Thread.currentThread().getId()); } }
private Result executeRequest(Statement request) { try { Map<String, Object> parameterMap = parameterConversion.convertParameters(request.getParameters()); String cypher = cypherModification.apply(request.getStatement()); if(LOGGER.isDebugEnabled()) { LOGGER.debug("Request: {} with params {}", cypher, parameterMap); } return graphDatabaseService.execute(cypher, parameterMap); } catch (QueryExecutionException qee) { throw new CypherException(qee.getStatusCode(), qee.getMessage(), qee); } catch (Exception e) { throw new RuntimeException(e); } } }
@Override public T next() { try { return fetchNext(); } catch (ClientException ce) { LOGGER.debug("Error executing Cypher: {}, {}", ce.code(), ce.getMessage()); throw new CypherException(ce.code(), ce.getMessage(), ce); } }
@Override public T next() { try { return fetchNext(); } catch (ClientException ce) { LOGGER.debug("Error executing Cypher: {}, {}", ce.code(), ce.getMessage()); throw new CypherException(ce.code(), ce.getMessage(), ce); } }
private StatementResult executeRequest(Statement request) { try { Map<String, Object> parameterMap = this.parameterConversion.convertParameters(request.getParameters()); String cypher = cypherModification.apply(request.getStatement()); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Request: {} with params {}", cypher, parameterMap); } BoltTransaction tx = (BoltTransaction) transactionManager.getCurrentTransaction(); return tx.nativeBoltTransaction().run(cypher, parameterMap); } catch (ClientException | DatabaseException | TransientException ce) { throw new CypherException(ce.code(), ce.getMessage(), ce); } } }
private StatementResult executeRequest(Statement request) { try { Map<String, Object> parameterMap = parameterConversion.convertParameters(request.getParameters()); String cypher = cypherModification.apply(request.getStatement()); if(LOGGER.isDebugEnabled()) { LOGGER.debug("Request: {} with params {}", cypher, parameterMap); } BoltTransaction tx = (BoltTransaction) transactionManager.getCurrentTransaction(); return tx.nativeBoltTransaction().run(cypher, parameterMap); } catch (ClientException | DatabaseException | TransientException ce) { throw new CypherException(ce.code(), ce.getMessage(), ce); } } }
@Override public Response<RowModel> execute(DefaultRequest query) { final List<RowModel> rowModels = new ArrayList<>(); String[] columns = null; for (Statement statement : query.getStatements()) { StatementResult result = executeRequest(statement); if (columns == null) { try { List<String> columnSet = result.keys(); columns = columnSet.toArray(new String[columnSet.size()]); } catch (ClientException e) { throw new CypherException(e.code(), e.getMessage(), e); } } try (RowModelResponse rowModelResponse = new RowModelResponse(result, transactionManager, entityAdapter)) { RowModel model; while ((model = rowModelResponse.next()) != null) { rowModels.add(model); } result.consume(); } } return new MultiStatementBasedResponse(columns, rowModels); }
@Override public Response<RowModel> execute(DefaultRequest query) { final List<RowModel> rowModels = new ArrayList<>(); String[] columns = null; for (Statement statement : query.getStatements()) { StatementResult result = executeRequest(statement); if (columns == null) { try { List<String> columnSet = result.keys(); columns = columnSet.toArray(new String[columnSet.size()]); } catch (ClientException e) { throw new CypherException(e.code(), e.getMessage(), e); } } try (RowModelResponse rowModelResponse = new RowModelResponse(result, transactionManager)) { RowModel model; while ((model = rowModelResponse.next()) != null) { rowModels.add(model); } result.consume(); } } return new MultiStatementBasedResponse(columns, rowModels); }
@Override public void commit() { final boolean canCommit = transactionManager.canCommit(); try { if (canCommit) { LOGGER.debug("Committing native transaction: {}", nativeTransaction); if (nativeTransaction.isOpen()) { nativeTransaction.success(); nativeTransaction.close(); nativeSession.close(); } else { throw new IllegalStateException("Transaction is already closed"); } } } catch (ClientException ce) { closeNativeSessionIfPossible(); if (ce.code().startsWith(NEO_CLIENT_ERROR_SECURITY)) { throw new ConnectionException("Security Error: " + ce.code() + ", " + ce.getMessage(), ce); } throw new CypherException(ce.code(), ce.getMessage(), ce); } catch (Exception e) { closeNativeSessionIfPossible(); throw new TransactionException(e.getLocalizedMessage(), e); } finally { super.commit(); if (canCommit) { transactionManager.bookmark(nativeSession.lastBookmark()); } } }
@Override public void commit() { final boolean canCommit = transactionManager.canCommit(); try { if (canCommit) { LOGGER.debug("Committing native transaction: {}", nativeTransaction); if (nativeTransaction.isOpen()) { nativeTransaction.success(); nativeTransaction.close(); nativeSession.close(); } else { throw new IllegalStateException("Transaction is already closed"); } } } catch (ClientException ce) { closeNativeSessionIfPossible(); if (ce.code().startsWith(NEO_CLIENT_ERROR_SECURITY)) { throw new ConnectionException("Security Error: " + ce.code() + ", " + ce.getMessage(), ce); } throw new CypherException(ce.code(), ce.getMessage(), ce); } catch (Exception e) { closeNativeSessionIfPossible(); throw new TransactionException(e.getLocalizedMessage(), e); } finally { super.commit(); if (canCommit) { transactionManager.bookmark(nativeSession.lastBookmark()); } } }