code: private void disposeAllOperators() {
  		if (operatorChain != null) {
  			for (StreamOperator<?> operator : operatorChain.getAllOperators()) {
  				try {
  					if (operator != null) {
  						operator.dispose();
  					}
  				}
  				catch (Throwable t) {
  					LOG.error("Error during disposal of stream operator.", t);
  				}
  			}
  		}
  	}
docs: Execute @link StreamOperator#dispose()} of each operator in the chain of this
  {@link StreamTask}. Disposing happens from <b>tail to head</b> operator in the chain.
  
  <p>The difference with the {@link #tryDisposeAllOperators()} is that in case of an
  exception, this method catches it and logs the message.