private synchronized void callOperatorClose() {
for (Integer opNum : operatorBuildOrder) {
Pair<Object, Boolean> operatorStatePair = operators.get(opNum);
if (operatorStatePair.getFirst() instanceof DataFlowOpLifecycle && !operatorStatePair.getSecond()) {
try {
DataFlowOpLifecycle lf = (DataFlowOpLifecycle) operatorStatePair.getFirst();
lf.close(new DataFlowOpCloseContext());
}
catch (RuntimeException ex) {
log.error("Exception encountered closing data flow '" + dataFlowName + "': " + ex.getMessage(), ex);
}
operatorStatePair.setSecond(true);