@Override protected boolean doProcess(Record record) { if (preserveExisting && record.getFields().containsKey(fieldName)) {; // we must preserve the existing id } else { record.replaceValues(fieldName, generateUUID()); } return super.doProcess(record); }
@Override protected boolean doProcess(Record inputRecord, InputStream stream) throws IOException { if (counter++ % 8192 == 0) { clob = new StringBuilder(); // periodically gc memory from large outlier strings } incrementNumRecords(); Charset detectedCharset = detectCharset(inputRecord, charset); Reader reader = new InputStreamReader(stream, detectedCharset); clob.setLength(0); int len; while ((len = reader.read(buffer)) >= 0) { clob.append(buffer, 0, len); } Record outputRecord = inputRecord.copy(); removeAttachments(outputRecord); outputRecord.replaceValues(Fields.MESSAGE, clob.toString()); // pass record to next command in chain: return getChild().process(outputRecord); }