protected ObjectNode executePost()

in streams-contrib/streams-persist-neo4j/src/main/java/org/apache/streams/neo4j/http/Neo4jHttpPersistWriter.java [107:149]


  protected ObjectNode executePost(HttpPost httpPost) {

    Objects.requireNonNull(httpPost);

    ObjectNode result = null;

    CloseableHttpResponse response = null;

    String entityString = null;
    try {
      response = httpclient.execute(httpPost);
      HttpEntity entity = response.getEntity();
      if (response.getStatusLine().getStatusCode() == 200 || response.getStatusLine().getStatusCode() == 201 && entity != null) {
        entityString = EntityUtils.toString(entity);
        result = mapper.readValue(entityString, ObjectNode.class);
      }
      LOGGER.debug("Writer response:\n{}\n{}\n{}", httpPost.toString(), response.getStatusLine().getStatusCode(), entityString);
      if ( result == null
           || (
              result.get("errors") != null
                  && result.get("errors").isArray()
                  && result.get("errors").iterator().hasNext()
              )
          ) {
        LOGGER.error("Write Error: " + result.get("errors"));
      } else {
        LOGGER.debug("Write Success");
      }
    } catch (IOException ex) {
      LOGGER.error("IO error:\n{}\n{}\n{}", httpPost.toString(), response, ex.getMessage());
    } catch (Exception ex) {
      LOGGER.error("Write Exception:\n{}\n{}\n{}", httpPost.toString(), response, ex.getMessage());
    } finally {
      try {
        if ( response != null) {
          response.close();
        }
      } catch (IOException ignored) {
        LOGGER.trace("ignored IOException", ignored);
      }
    }
    return result;
  }