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()); } }
String code = ((CypherException) ex).getCode(); final Class<? extends DataAccessException> dae = Neo4jErrorStatusCodes.translate(code);
} catch (CypherException e) { if (newTransaction && txManager.canRollback()) { logger.warn("Error executing query : {} - {}. Rolling back transaction.", e.getCode(), e.getDescription()); transaction.rollback();
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); } } }
String code = ((CypherException) ex).getCode(); final Class<? extends DataAccessException> dae = Neo4jErrorStatusCodes.translate(code);
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()); } }
@Test // GH-119 public void shouldWrapUnderlyingException() { session.save(new User("Bilbo Baggins")); try { session.query(User.class, "MATCH(u:User) WHERE u.name ~ '.*Baggins' RETURN u", Utils.map()); fail("Expected a CypherException but got none"); } catch (CypherException ce) { assertThat(ce.getCode().contains("Neo.ClientError.Statement")).isTrue(); } }
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()); } } }