private List<String> doAggregate( AggregatorFactory[] metrics, Aggregator[] aggs, ThreadLocal<InputRow> rowContainer, InputRow row ) { List<String> parseExceptionMessages = new ArrayList<>(); rowContainer.set(row); for (int i = 0; i < aggs.length; i++) { final Aggregator agg = aggs[i]; synchronized (agg) { try { agg.aggregate(); } catch (ParseException e) { // "aggregate" can throw ParseExceptions if a selector expects something but gets something else. log.debug(e, "Encountered parse error, skipping aggregator[%s].", metrics[i].getName()); parseExceptionMessages.add(e.getMessage()); } } } rowContainer.set(null); return parseExceptionMessages; }
parseExceptionMessages.add(pe.getMessage());
parseExceptionMessages.add(pe.getMessage()); parseExceptionMessages.add(e.getMessage());
Assert.assertEquals( "Found unparseable columns in row: [MapBasedInputRow{timestamp=1970-01-01T00:00:00.000Z, event={string=A, float=19.0, long=asdj, double=21.0}, dimensions=[string, float, long, double]}], exceptions: [could not convert value [asdj] to long,]", result.getParseException().getMessage() ); Assert.assertEquals( "Found unparseable columns in row: [MapBasedInputRow{timestamp=1970-01-01T00:00:00.000Z, event={string=A, float=aaa, long=20, double=21.0}, dimensions=[string, float, long, double]}], exceptions: [could not convert value [aaa] to float,]", result.getParseException().getMessage() ); Assert.assertEquals( "Found unparseable columns in row: [MapBasedInputRow{timestamp=1970-01-01T00:00:00.000Z, event={string=A, float=19.0, long=20, double=}, dimensions=[string, float, long, double]}], exceptions: [could not convert value [] to double,]", result.getParseException().getMessage() );
private List<String> doAggregate( AggregatorFactory[] metrics, Aggregator[] aggs, ThreadLocal<InputRow> rowContainer, InputRow row ) { List<String> parseExceptionMessages = new ArrayList<>(); rowContainer.set(row); for (int i = 0; i < aggs.length; i++) { final Aggregator agg = aggs[i]; synchronized (agg) { try { agg.aggregate(); } catch (ParseException e) { // "aggregate" can throw ParseExceptions if a selector expects something but gets something else. log.debug(e, "Encountered parse error, skipping aggregator[%s].", metrics[i].getName()); parseExceptionMessages.add(e.getMessage()); } } } rowContainer.set(null); return parseExceptionMessages; }
parseExceptionMessages.add(pe.getMessage());
parseExceptionMessages.add(pe.getMessage()); parseExceptionMessages.add(e.getMessage());