@OnScheduled public void onScheduled(final ProcessContext context) { recordPathCache = new RecordPathCache(4); super.onScheduled(context); }
final PutFlowFile putFlowFile = createPut(session, context, flowFile); } else if (!putFlowFile.isValid()) { if (StringUtils.isBlank(putFlowFile.getTableName())) { getLogger().error("Missing table name for FlowFile {}; routing to failure", new Object[]{flowFile}); } else if (null == putFlowFile.getRow()) { getLogger().error("Missing row id for FlowFile {}; routing to failure", new Object[]{flowFile}); } else if (putFlowFile.getColumns() == null || putFlowFile.getColumns().isEmpty()) { getLogger().error("No columns provided for FlowFile {}; routing to failure", new Object[]{flowFile}); } else { getLogger().error("Failed to produce a put for FlowFile {}; routing to failure", new Object[]{flowFile}); getLogger().debug("Sending {} FlowFiles to HBase in {} put operations", new Object[]{flowFiles.size(), tablePuts.size()}); successes.addAll(entry.getValue()); } catch (Exception e) { getLogger().error(e.getMessage(), e); getLogger().error("Failed to send {} to HBase due to {}; routing to failure", new Object[]{putFlowFile.getFlowFile(), e}); final FlowFile failure = session.penalize(putFlowFile.getFlowFile()); session.transfer(failure, REL_FAILURE); getLogger().debug("Sent {} FlowFiles to HBase successfully in {} milliseconds", new Object[]{successes.size(), sendMillis}); session.getProvenanceReporter().send(putFlowFile.getFlowFile(), getTransitUri(putFlowFile), details, sendMillis);