You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by rm...@apache.org on 2019/06/05 22:36:23 UTC

[metron] branch master updated: METRON-2153 ParserIntegrationTest should print failed messages (merrimanr) closes apache/metron#1438

This is an automated email from the ASF dual-hosted git repository.

rmerriman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/metron.git


The following commit(s) were added to refs/heads/master by this push:
     new a1487ec  METRON-2153 ParserIntegrationTest should print failed messages (merrimanr) closes apache/metron#1438
a1487ec is described below

commit a1487ec104c0ebb7e3383499b445726dbe5de142
Author: merrimanr <me...@gmail.com>
AuthorDate: Wed Jun 5 17:36:05 2019 -0500

    METRON-2153 ParserIntegrationTest should print failed messages (merrimanr) closes apache/metron#1438
---
 .../java/org/apache/metron/common/error/MetronError.java    |  4 ++++
 .../java/org/apache/metron/parsers/bolt/ParserBolt.java     |  6 +++++-
 .../parsers/integration/validation/StormParserDriver.java   | 13 +++++++++++++
 3 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java b/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java
index 46fe3b2..fe6a161 100644
--- a/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java
+++ b/metron-platform/metron-common/src/main/java/org/apache/metron/common/error/MetronError.java
@@ -106,6 +106,10 @@ public class MetronError {
     return throwable != null ? Optional.of(throwable) : Optional.empty();
   }
 
+  public List<Object> getRawMessages() {
+    return rawMessages;
+  }
+
   /**
    * Serializes the MetronError into a JSON object.
    *
diff --git a/metron-platform/metron-parsing/metron-parsing-storm/src/main/java/org/apache/metron/parsers/bolt/ParserBolt.java b/metron-platform/metron-parsing/metron-parsing-storm/src/main/java/org/apache/metron/parsers/bolt/ParserBolt.java
index 2837fcb..f6715a5 100644
--- a/metron-platform/metron-parsing/metron-parsing-storm/src/main/java/org/apache/metron/parsers/bolt/ParserBolt.java
+++ b/metron-platform/metron-parsing/metron-parsing-storm/src/main/java/org/apache/metron/parsers/bolt/ParserBolt.java
@@ -255,7 +255,7 @@ public class ParserBolt extends ConfiguredParserBolt implements Serializable {
               , sensorParserConfig.getRawMessageStrategyConfig()
       );
       ParserRunnerResults<JSONObject> parserRunnerResults = parserRunner.execute(sensorType, rawMessage, parserConfigurations);
-      parserRunnerResults.getErrors().forEach(error -> StormErrorUtils.handleError(collector, error));
+      parserRunnerResults.getErrors().forEach(error -> handleError(collector, error));
 
       WriterHandler writer = sensorToWriterMap.get(sensorType);
       int numWritten = 0;
@@ -326,6 +326,10 @@ public class ParserBolt extends ConfiguredParserBolt implements Serializable {
             .withThrowable(ex)
             .withSensorType(Collections.singleton(sensorType))
             .addRawMessage(originalMessage);
+    handleError(collector, error);
+  }
+
+  protected void handleError(OutputCollector collector, MetronError error) {
     StormErrorUtils.handleError(collector, error);
   }
 
diff --git a/metron-platform/metron-parsing/metron-parsing-storm/src/test/java/org/apache/metron/parsers/integration/validation/StormParserDriver.java b/metron-platform/metron-parsing/metron-parsing-storm/src/test/java/org/apache/metron/parsers/integration/validation/StormParserDriver.java
index 0d46d73..764a445 100644
--- a/metron-platform/metron-parsing/metron-parsing-storm/src/test/java/org/apache/metron/parsers/integration/validation/StormParserDriver.java
+++ b/metron-platform/metron-parsing/metron-parsing-storm/src/test/java/org/apache/metron/parsers/integration/validation/StormParserDriver.java
@@ -35,6 +35,7 @@ import org.apache.commons.lang.SerializationUtils;
 import org.apache.metron.common.configuration.IndexingConfigurations;
 import org.apache.metron.common.configuration.ParserConfigurations;
 import org.apache.metron.common.configuration.writer.WriterConfiguration;
+import org.apache.metron.common.error.MetronError;
 import org.apache.metron.common.writer.BulkMessageWriter;
 import org.apache.metron.common.writer.BulkMessage;
 import org.apache.metron.common.writer.BulkWriterResponse;
@@ -112,6 +113,18 @@ public class StormParserDriver extends ParserDriver {
       LOG.error("Error parsing message: " + ex.getMessage(), ex);
     }
 
+    @Override
+    protected void handleError(OutputCollector collector, MetronError error) {
+      for(Object rawMessage: error.getRawMessages()) {
+        errors.add((byte[]) rawMessage);
+      }
+      if (error.getThrowable().isPresent()) {
+        Throwable throwable = error.getThrowable().get();
+        LOG.error("Error parsing message: " + throwable.getMessage(), throwable);
+      }
+
+    }
+
     @SuppressWarnings("unchecked")
     public ProcessorResult<List<byte[]>> getResults() {
       return new ProcessorResult.Builder<List<byte[]>>().withProcessErrors(errors)