public class org.apache.nifi.processors.standard.Wait extends org.apache.nifi.processor.AbstractProcessor
{
public static final java.lang.String WAIT_START_TIMESTAMP;
public static final org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE;
public static final org.apache.nifi.components.PropertyDescriptor RELEASE_SIGNAL_IDENTIFIER;
public static final org.apache.nifi.components.PropertyDescriptor TARGET_SIGNAL_COUNT;
public static final org.apache.nifi.components.PropertyDescriptor SIGNAL_COUNTER_NAME;
public static final org.apache.nifi.components.PropertyDescriptor WAIT_BUFFER_COUNT;
public static final org.apache.nifi.components.PropertyDescriptor RELEASABLE_FLOWFILE_COUNT;
public static final org.apache.nifi.components.PropertyDescriptor EXPIRATION_DURATION;
public static final org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_REPLACE;
public static final org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_KEEP_ORIGINAL;
public static final org.apache.nifi.components.PropertyDescriptor ATTRIBUTE_COPY_MODE;
public static final org.apache.nifi.components.AllowableValue WAIT_MODE_TRANSFER_TO_WAIT;
public static final org.apache.nifi.components.AllowableValue WAIT_MODE_KEEP_IN_UPSTREAM;
public static final org.apache.nifi.components.PropertyDescriptor WAIT_MODE;
public static final org.apache.nifi.components.PropertyDescriptor WAIT_PENALTY_DURATION;
public static final org.apache.nifi.processor.Relationship REL_SUCCESS;
public static final org.apache.nifi.processor.Relationship REL_FAILURE;
public static final org.apache.nifi.processor.Relationship REL_WAIT;
public static final org.apache.nifi.processor.Relationship REL_EXPIRED;
private final java.util.Set relationships;
private final java.util.Map signalIdPenalties;
public void <init>()
{
java.util.Set v;
java.util.HashMap v;
java.util.HashSet v;
org.apache.nifi.processor.Relationship v, v, v, v;
org.apache.nifi.processors.standard.Wait v;
v := @this: org.apache.nifi.processors.standard.Wait;
specialinvoke v.<org.apache.nifi.processor.AbstractProcessor: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.nifi.processors.standard.Wait: java.util.Map signalIdPenalties> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_SUCCESS>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_WAIT>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_EXPIRED>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_FAILURE>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
v.<org.apache.nifi.processors.standard.Wait: java.util.Set relationships> = v;
return;
}
protected java.util.List getSupportedPropertyDescriptors()
{
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v, v, v;
java.util.ArrayList v;
org.apache.nifi.processors.standard.Wait v;
v := @this: org.apache.nifi.processors.standard.Wait;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor RELEASE_SIGNAL_IDENTIFIER>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor TARGET_SIGNAL_COUNT>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor SIGNAL_COUNTER_NAME>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_BUFFER_COUNT>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor RELEASABLE_FLOWFILE_COUNT>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor EXPIRATION_DURATION>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor ATTRIBUTE_COPY_MODE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_MODE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_PENALTY_DURATION>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return v;
}
public java.util.Set getRelationships()
{
java.util.Set v;
org.apache.nifi.processors.standard.Wait v;
v := @this: org.apache.nifi.processors.standard.Wait;
v = v.<org.apache.nifi.processors.standard.Wait: java.util.Set relationships>;
return v;
}
public void onTrigger(org.apache.nifi.processor.ProcessContext, org.apache.nifi.processor.ProcessSession) throws org.apache.nifi.processor.exception.ProcessException
{
java.lang.Integer v, v;
byte v, v, v, v;
java.lang.Long v, v, v, v, v;
java.util.Map v, v, v, v;
org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal v;
org.apache.nifi.components.AllowableValue v;
org.apache.nifi.controller.ControllerService v;
java.lang.Object[] v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.function.Supplier v;
org.apache.nifi.processor.Relationship v, v, v, v, v, v;
java.io.IOException v, v;
org.apache.nifi.processor.ProcessSession v;
org.apache.nifi.processors.standard.Wait v;
org.apache.nifi.components.PropertyValue v, v, v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicInteger v;
java.util.function.Function v;
int v;
java.util.function.Consumer v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.processor.FlowFileFilter v;
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v, v;
java.util.Set v, v, v;
java.util.ArrayList v, v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.NumberFormatException v, v, v;
org.apache.nifi.processors.standard.WaitNotifyProtocol v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v;
java.util.HashMap v, v;
org.apache.nifi.logging.ComponentLog v;
java.util.concurrent.atomic.AtomicReference v, v;
org.apache.nifi.processor.exception.ProcessException v, v;
java.util.Iterator v, v;
org.apache.nifi.processor.ProcessContext v;
java.util.concurrent.TimeUnit v, v;
v := @this: org.apache.nifi.processors.standard.Wait;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v = virtualinvoke v.<org.apache.nifi.processors.standard.Wait: org.apache.nifi.logging.ComponentLog getLogger()>();
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor RELEASE_SIGNAL_IDENTIFIER>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_BUFFER_COUNT>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Integer asInteger()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_1__256: java.util.function.Function bootstrap$(java.util.Map)>(v);
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v = new java.util.concurrent.atomic.AtomicInteger;
specialinvoke v.<java.util.concurrent.atomic.AtomicInteger: void <init>(int)>(0);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_2__257: java.util.function.Supplier bootstrap$(java.util.concurrent.atomic.AtomicInteger,java.lang.Integer)>(v, v);
v = v.<org.apache.nifi.processors.standard.Wait: java.util.Map signalIdPenalties>;
v = interfaceinvoke v.<java.util.Map: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.nifi.processors.standard.Wait: java.util.Map signalIdPenalties>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v cmp v;
if v >= 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_3__258: org.apache.nifi.processor.FlowFileFilter bootstrap$(org.apache.nifi.processors.standard.Wait,org.apache.nifi.components.PropertyValue,org.apache.nifi.logging.ComponentLog,java.util.List,java.util.concurrent.atomic.AtomicReference,java.util.function.Supplier)>(v, v, v, v, v, v);
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: java.util.List get(org.apache.nifi.processor.FlowFileFilter)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor ATTRIBUTE_COPY_MODE>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_REPLACE>;
v = virtualinvoke v.<org.apache.nifi.components.AllowableValue: java.lang.String getValue()>();
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_4__259: java.util.function.Consumer bootstrap$(org.apache.nifi.processors.standard.Wait,org.apache.nifi.processor.ProcessSession,java.util.function.Function)>(v, v, v);
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_6__260: java.util.function.Consumer bootstrap$(org.apache.nifi.processors.standard.Wait,org.apache.nifi.processor.ProcessContext,org.apache.nifi.processor.ProcessSession,java.util.concurrent.atomic.AtomicReference,java.util.HashMap,boolean)>(v, v, v, v, v, v);
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_7__261: java.util.function.Consumer bootstrap$(java.util.List,java.util.function.Consumer)>(v, v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
interfaceinvoke v.<java.util.Set: void forEach(java.util.function.Consumer)>(v);
return;
label:
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.controller.ControllerService asControllerService(java.lang.Class)>(class "Lorg/apache/nifi/distributed/cache/client/AtomicDistributedMapCacheClient;");
v = new org.apache.nifi.processors.standard.WaitNotifyProtocol;
specialinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol: void <init>(org.apache.nifi.distributed.cache.client.AtomicDistributedMapCacheClient)>(v);
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol: org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal getSignal(java.lang.String)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: java.util.Map getCounts()>();
virtualinvoke v.<java.util.HashMap: void putAll(java.util.Map)>(v);
label:
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.nifi.processor.exception.ProcessException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Failed to get signal for %s due to %s", v);
specialinvoke v.<org.apache.nifi.processor.exception.ProcessException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = null;
v = 1L;
v = 1;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.apache.nifi.flowfile.FlowFile: java.lang.String getAttribute(java.lang.String)>("wait.start.timestamp");
if v != null goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(long)>(v);
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile putAttribute(org.apache.nifi.flowfile.FlowFile,java.lang.String,java.lang.String)>(v, "wait.start.timestamp", v);
label:
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = newarray (java.lang.Object)[3];
v[0] = "wait.start.timestamp";
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void error(java.lang.String,java.lang.Object[])>("{} has an invalid value \'{}\' on FlowFile {}", v);
interfaceinvoke v.<java.util.function.Consumer: void accept(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor EXPIRATION_DURATION>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Long asTimePeriod(java.util.concurrent.TimeUnit)>(v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v + v;
v = v cmp v;
if v <= 0 goto label;
v = newarray (java.lang.Object)[2];
v[0] = v;
v = v - v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void info(java.lang.String,java.lang.Object[])>("FlowFile {} expired after {}ms", v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_EXPIRED>;
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
if v != null goto label;
v = interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: boolean isDebugEnabled()>();
if v == 0 goto label;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void debug(java.lang.String,java.lang.Object[])>("No release signal found for {} on FlowFile {} yet", v);
label:
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_WAIT>;
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor SIGNAL_COUNTER_NAME>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions(org.apache.nifi.flowfile.FlowFile)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
label:
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor TARGET_SIGNAL_COUNT>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions(org.apache.nifi.flowfile.FlowFile)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.function.Consumer: void accept(java.lang.Object)>(v);
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void error(java.lang.String,java.lang.Object[])>("Failed to parse targetCount when processing {} due to {}", v);
goto label;
label:
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor RELEASABLE_FLOWFILE_COUNT>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: org.apache.nifi.components.PropertyValue evaluateAttributeExpressions(org.apache.nifi.flowfile.FlowFile)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.String getValue()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<java.util.function.Consumer: void accept(java.lang.Object)>(v);
v = newarray (java.lang.Object)[3];
v[0] = v;
v[1] = v;
v[2] = v;
interfaceinvoke v.<org.apache.nifi.logging.ComponentLog: void error(java.lang.String,java.lang.Object[])>("Failed to parse releasableFlowFileCount when processing {} due to {}", v);
goto label;
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = 0;
v = 0;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
if v <= 0 goto label;
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_8__262: java.util.function.Consumer bootstrap$(java.util.function.Function)>(v);
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_onTrigger_9__263: java.util.function.Consumer bootstrap$(java.util.function.Function)>(v);
virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: void releaseCandidates(java.lang.String,long,int,java.util.List,java.util.function.Consumer,java.util.function.Consumer)>(v, v, v, v, v, v);
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: long getTotalCount()>();
v = v cmp 0L;
if v != 0 goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: long getReleasableCount()>();
v = v cmp 0L;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_SUCCESS>;
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
goto label;
label:
v = staticinvoke <org.apache.commons.lang.StringUtils: boolean isBlank(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: boolean isTotalCountReached(long)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: boolean isCountReached(java.lang.String,long)>(v, v);
label:
if v == 0 goto label;
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_SUCCESS>;
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
goto label;
label:
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_WAIT>;
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
interfaceinvoke v.<java.util.Set: void forEach(java.util.function.Consumer)>(v);
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_PENALTY_DURATION>;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessContext: org.apache.nifi.components.PropertyValue getProperty(org.apache.nifi.components.PropertyDescriptor)>(v);
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: boolean isSet()>();
if v == 0 goto label;
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_SUCCESS>;
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = v.<org.apache.nifi.processors.standard.Wait: java.util.Map signalIdPenalties>;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = interfaceinvoke v.<org.apache.nifi.components.PropertyValue: java.lang.Long asTimePeriod(java.util.concurrent.TimeUnit)>(v);
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v + v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
if v == 0 goto label;
virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol: void complete(java.lang.String)>(v);
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol: boolean replace(org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal)>(v);
label:
goto label;
label:
v := @caughtexception;
interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: void rollback()>();
v = new org.apache.nifi.processor.exception.ProcessException;
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Unable to communicate with cache while updating %s due to %s", v);
specialinvoke v.<org.apache.nifi.processor.exception.ProcessException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch java.io.IOException from label to label with label;
catch java.lang.NumberFormatException from label to label with label;
catch java.lang.NumberFormatException from label to label with label;
catch java.lang.NumberFormatException from label to label with label;
catch java.io.IOException from label to label with label;
}
private org.apache.nifi.flowfile.FlowFile clearWaitState(org.apache.nifi.processor.ProcessSession, org.apache.nifi.flowfile.FlowFile)
{
org.apache.nifi.flowfile.FlowFile v, v;
org.apache.nifi.processor.ProcessSession v;
org.apache.nifi.processors.standard.Wait v;
v := @this: org.apache.nifi.processors.standard.Wait;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v := @parameter: org.apache.nifi.flowfile.FlowFile;
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile removeAttribute(org.apache.nifi.flowfile.FlowFile,java.lang.String)>(v, "wait.start.timestamp");
return v;
}
private org.apache.nifi.flowfile.FlowFile copySignalAttributes(org.apache.nifi.processor.ProcessSession, org.apache.nifi.flowfile.FlowFile, org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal, java.util.Map, boolean)
{
java.util.HashMap v;
long v;
java.util.function.Function v, v;
java.util.Map v, v, v;
java.lang.String v;
java.util.stream.Collector v;
java.util.function.ToLongFunction v;
org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal v;
boolean v;
java.util.stream.LongStream v;
org.apache.nifi.flowfile.FlowFile v, v;
java.util.function.Predicate v;
java.util.Set v, v;
org.apache.nifi.processor.ProcessSession v;
java.util.stream.Stream v, v, v;
java.lang.Object v;
org.apache.nifi.processors.standard.Wait v;
v := @this: org.apache.nifi.processors.standard.Wait;
v := @parameter: org.apache.nifi.processor.ProcessSession;
v := @parameter: org.apache.nifi.flowfile.FlowFile;
v := @parameter: org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal;
v := @parameter: java.util.Map;
v := @parameter: boolean;
if v != null goto label;
return v;
label:
if v == 0 goto label;
v = new java.util.HashMap;
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: java.util.Map getAttributes()>();
specialinvoke v.<java.util.HashMap: void <init>(java.util.Map)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>("uuid");
goto label;
label:
v = virtualinvoke v.<org.apache.nifi.processors.standard.WaitNotifyProtocol$Signal: java.util.Map getAttributes()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_copySignalAttributes_10__264: java.util.function.Predicate bootstrap$(org.apache.nifi.flowfile.FlowFile)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.nifi.processors.standard.Wait$getKey__265: java.util.function.Function bootstrap$()>();
v = staticinvoke <org.apache.nifi.processors.standard.Wait$getValue__266: java.util.function.Function bootstrap$()>();
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toMap(java.util.function.Function,java.util.function.Function)>(v, v);
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
label:
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.nifi.processors.standard.Wait$lambda_copySignalAttributes_11__267: java.util.function.ToLongFunction bootstrap$(java.util.Map)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.LongStream mapToLong(java.util.function.ToLongFunction)>(v);
v = interfaceinvoke v.<java.util.stream.LongStream: long sum()>();
v = staticinvoke <java.lang.String: java.lang.String valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("wait.counter.total", v);
v = interfaceinvoke v.<org.apache.nifi.processor.ProcessSession: org.apache.nifi.flowfile.FlowFile putAllAttributes(org.apache.nifi.flowfile.FlowFile,java.util.Map)>(v, v);
return v;
}
public void onStopped(org.apache.nifi.processor.ProcessContext)
{
org.apache.nifi.processor.ProcessContext v;
org.apache.nifi.processors.standard.Wait v;
java.util.Map v;
v := @this: org.apache.nifi.processors.standard.Wait;
v := @parameter: org.apache.nifi.processor.ProcessContext;
v = v.<org.apache.nifi.processors.standard.Wait: java.util.Map signalIdPenalties>;
interfaceinvoke v.<java.util.Map: void clear()>();
return;
}
java.util.Map getSignalIdPenalties()
{
org.apache.nifi.processors.standard.Wait v;
java.util.Map v;
v := @this: org.apache.nifi.processors.standard.Wait;
v = v.<org.apache.nifi.processors.standard.Wait: java.util.Map signalIdPenalties>;
return v;
}
static void <clinit>()
{
org.apache.nifi.components.AllowableValue v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.processor.Relationship v, v, v, v;
org.apache.nifi.expression.ExpressionLanguageScope v, v, v, v, v, v, v, v;
org.apache.nifi.components.PropertyDescriptor v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.expression.AttributeExpression$ResultType v, v;
java.lang.String v, v;
org.apache.nifi.components.PropertyDescriptor$Builder v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.nifi.components.AllowableValue[] v, v;
org.apache.nifi.components.Validator v, v, v, v, v, v, v;
org.apache.nifi.processor.Relationship$Builder v, v, v, v, v, v, v, v, v, v, v, v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("distributed-cache-service");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Distributed Cache Service");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The Controller Service that is used to check for release signals from a corresponding Notify processor");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder identifiesControllerService(java.lang.Class)>(class "Lorg/apache/nifi/distributed/cache/client/AtomicDistributedMapCacheClient;");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor DISTRIBUTED_CACHE_SERVICE> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("release-signal-id");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Release Signal Identifier");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("A value that specifies the key to a specific release signal cache. To decide whether the FlowFile that is being processed by the Wait processor should be sent to the \'success\' or the \'wait\' relationship, the processor checks the signals in the cache specified by this key.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <org.apache.nifi.expression.AttributeExpression$ResultType: org.apache.nifi.expression.AttributeExpression$ResultType STRING>;
v = staticinvoke <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator createAttributeExpressionLanguageValidator(org.apache.nifi.expression.AttributeExpression$ResultType,boolean)>(v, 1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope FLOWFILE_ATTRIBUTES>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor RELEASE_SIGNAL_IDENTIFIER> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("target-signal-count");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Target Signal Count");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("The number of signals that need to be in the cache (specified by the Release Signal Identifier) in order for the FlowFile processed by the Wait processor to be sent to the \u2018success\u relationship. If the number of signals in the cache has reached this number, the FlowFile is routed to the \'success\' relationship and the number of signals in the cache is decreased by this value. If Signal Counter Name is specified, this processor checks a particular counter, otherwise checks against the total number of signals in the cache.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator NON_NEGATIVE_INTEGER_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope FLOWFILE_ATTRIBUTES>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("1");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor TARGET_SIGNAL_COUNT> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("signal-counter-name");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Signal Counter Name");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Within the cache (specified by the Release Signal Identifier) the signals may belong to different counters. If this property is specified, the processor checks the number of signals in the cache that belong to this particular counter. If not specified, the processor checks the total number of signals in the cache.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = <org.apache.nifi.expression.AttributeExpression$ResultType: org.apache.nifi.expression.AttributeExpression$ResultType STRING>;
v = staticinvoke <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator createAttributeExpressionLanguageValidator(org.apache.nifi.expression.AttributeExpression$ResultType,boolean)>(v, 1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope FLOWFILE_ATTRIBUTES>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor SIGNAL_COUNTER_NAME> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("wait-buffer-count");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Wait Buffer Count");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Specify the maximum number of incoming FlowFiles that can be buffered to check whether it can move forward. The more buffer can provide the better performance, as it reduces the number of interactions with cache service by grouping FlowFiles by signal identifier. Only a signal identifier can be processed at a processor execution.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator POSITIVE_INTEGER_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("1");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_BUFFER_COUNT> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("releasable-flowfile-count");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Releasable FlowFile Count");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("A value, or the results of an Attribute Expression Language statement, which will be evaluated against a FlowFile in order to determine the releasable FlowFile count. This specifies how many FlowFiles can be released when a target count reaches target signal count. Zero (0) has a special meaning, any number of FlowFiles can be released as long as signal count matches target.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator NON_NEGATIVE_INTEGER_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope FLOWFILE_ATTRIBUTES>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("1");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor RELEASABLE_FLOWFILE_COUNT> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("expiration-duration");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Expiration Duration");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Indicates the duration after which waiting FlowFiles will be routed to the \'expired\' relationship");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>("10 min");
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator TIME_PERIOD_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope NONE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor EXPIRATION_DURATION> = v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("replace", "Replace if present", "When cached attributes are copied onto released FlowFiles, they replace any matching attributes.");
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_REPLACE> = v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("keeporiginal", "Keep original", "Attributes on released FlowFiles are not overwritten by copied cached attributes.");
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_KEEP_ORIGINAL> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("attribute-copy-mode");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Attribute Copy Mode");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Specifies how to handle attributes copied from FlowFiles entering the Notify processor");
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_KEEP_ORIGINAL>;
v = virtualinvoke v.<org.apache.nifi.components.AllowableValue: java.lang.String getValue()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = newarray (org.apache.nifi.components.AllowableValue)[2];
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_REPLACE>;
v[0] = v;
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue ATTRIBUTE_COPY_KEEP_ORIGINAL>;
v[1] = v;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(org.apache.nifi.components.AllowableValue[])>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope NONE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor ATTRIBUTE_COPY_MODE> = v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("wait", "Transfer to wait relationship", "Transfer a FlowFile to the \'wait\' relationship when whose release signal has not been notified yet. This mode allows other incoming FlowFiles to be enqueued by moving FlowFiles into the wait relationship. It is recommended to set a prioritizer (for instance First In First Out) on the \'wait\' relationship.");
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue WAIT_MODE_TRANSFER_TO_WAIT> = v;
v = new org.apache.nifi.components.AllowableValue;
specialinvoke v.<org.apache.nifi.components.AllowableValue: void <init>(java.lang.String,java.lang.String,java.lang.String)>("keep", "Keep in the upstream connection", "Transfer a FlowFile to the upstream connection where it comes from when whose release signal has not been notified yet. This mode helps keeping upstream connection being full so that the upstream source processor will not be scheduled while back-pressure is active and limit incoming FlowFiles. ");
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue WAIT_MODE_KEEP_IN_UPSTREAM> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("wait-mode");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Wait Mode");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("Specifies how to handle a FlowFile waiting for a notify signal");
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue WAIT_MODE_TRANSFER_TO_WAIT>;
v = virtualinvoke v.<org.apache.nifi.components.AllowableValue: java.lang.String getValue()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder defaultValue(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(1);
v = newarray (org.apache.nifi.components.AllowableValue)[2];
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue WAIT_MODE_TRANSFER_TO_WAIT>;
v[0] = v;
v = <org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.AllowableValue WAIT_MODE_KEEP_IN_UPSTREAM>;
v[1] = v;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder allowableValues(org.apache.nifi.components.AllowableValue[])>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope NONE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_MODE> = v;
v = new org.apache.nifi.components.PropertyDescriptor$Builder;
specialinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder name(java.lang.String)>("wait-penalty-duration");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder displayName(java.lang.String)>("Wait Penalty Duration");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder description(java.lang.String)>("If configured, after a signal identifier got processed but did not meet the release criteria, the signal identifier is penalized and FlowFiles having the signal identifier will not be processed again for the specified period of time, so that the signal identifier will not block others to be processed. This can be useful for use cases where a Wait processor is expected to process multiple signal identifiers, and each signal identifier has multiple FlowFiles, and also the order of releasing FlowFiles is important within a signal identifier. The FlowFile order can be configured with Prioritizers. IMPORTANT: There is a limitation of number of queued signals can be processed, and Wait processor may not be able to check all queued signal ids. See additional details for the best practice.");
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder required(boolean)>(0);
v = <org.apache.nifi.processor.util.StandardValidators: org.apache.nifi.components.Validator TIME_PERIOD_VALIDATOR>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder addValidator(org.apache.nifi.components.Validator)>(v);
v = <org.apache.nifi.expression.ExpressionLanguageScope: org.apache.nifi.expression.ExpressionLanguageScope NONE>;
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor$Builder expressionLanguageSupported(org.apache.nifi.expression.ExpressionLanguageScope)>(v);
v = virtualinvoke v.<org.apache.nifi.components.PropertyDescriptor$Builder: org.apache.nifi.components.PropertyDescriptor build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.components.PropertyDescriptor WAIT_PENALTY_DURATION> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("success");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("A FlowFile with a matching release signal in the cache will be routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_SUCCESS> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("failure");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("When the cache cannot be reached, or if the Release Signal Identifier evaluates to null or empty, FlowFiles will be routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_FAILURE> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("wait");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("A FlowFile with no matching release signal in the cache will be routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_WAIT> = v;
v = new org.apache.nifi.processor.Relationship$Builder;
specialinvoke v.<org.apache.nifi.processor.Relationship$Builder: void <init>()>();
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder name(java.lang.String)>("expired");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship$Builder description(java.lang.String)>("A FlowFile that has exceeded the configured Expiration Duration will be routed to this relationship");
v = virtualinvoke v.<org.apache.nifi.processor.Relationship$Builder: org.apache.nifi.processor.Relationship build()>();
<org.apache.nifi.processors.standard.Wait: org.apache.nifi.processor.Relationship REL_EXPIRED> = v;
return;
}
}