@Override public final void consume(final InputRow row, final int distinctCount, final FilterOutcomes outcomes, final RowProcessingChain chain) { try { consumeInternal(row, distinctCount, outcomes, chain); } catch (final RuntimeException e) { final ComponentJob componentJob = getComponentJob(); if (_analysisListener == null) { logger.error("Error occurred in component '" + componentJob + "' and no AnalysisListener is available", e); throw e; } else { _analysisListener.errorInComponent(_analysisJob, componentJob, row, e); } } }