Program: 39623
Project: 39623
Buggy source:
/** 
 * Add all transformation utilities this utility depends on. Notice that this is not cumulative, meaning if this method has been called previously, that dependencies set will be entirely replaced by this new one. <br> This notion of "dependency" among TUs help resilience in two ways: <ol> <li>If TU B depends on TU A, and if TU A "fails" but doesn't abort transformation, then TU B would be skipped</li> <li>If TU B depends on TU A, then that means TU A is necessary supposed to be executed first, if not, TU B will be skipped</li> </ol> The term "fails" in this context means the perform result is of one of these types: <ol> <li>  {@link PerformResult.Type#ERROR}</li> <li>  {@link PerformResult.Type#SKIPPED_CONDITION}</li> <li>  {@link PerformResult.Type#SKIPPED_DEPENDENCY}</li> </ol> A dependency failure is also possible if perform result type is   {@link PerformResult.Type#EXECUTION_RESULT}, and the execution result type is one of the following: <ol> <li>  {@link com.paypal.butterfly.extensions.api.TUExecutionResult.Type#NULL} (for TUs only)</li><li> {@link com.paypal.butterfly.extensions.api.TUExecutionResult.Type#ERROR} (for TUs only)</li><li> {@link com.paypal.butterfly.extensions.api.TOExecutionResult.Type#ERROR} (for TOs only)</li></ol> <br>
 * @see {@link #checkDependencies(TransformationContext)}
 * @see {@link Result#dependencyFailureCheck()}
 * @see {@link TUExecutionResult#dependencyFailureCheck()}
 * @see {@link TOExecutionResult#dependencyFailureCheck()}
 * @see {@link PerformResult#dependencyFailureCheck()}
 * @param dependencies
 */
public final TU dependsOn(String... dependencies){
  if (dependencies != null) {
    for (    String dependency : dependencies) {
      if (StringUtils.isBlank(dependency))       throw new IllegalArgumentException("String_Node_Str");
    }
  }
  this.dependencies=dependencies;
  return (TU)this;
}

Fixed version (ground truth):
/** 
 * Add all transformation utilities this utility depends on. Notice that this is not cumulative, meaning if this method has been called previously, that dependencies set will be entirely replaced by this new one. <br> This notion of "dependency" among TUs help resilience in two ways: <ol> <li>If TU B depends on TU A, and if TU A "fails" but doesn't abort transformation, then TU B would be skipped</li> <li>If TU B depends on TU A, then that means TU A is necessary supposed to be executed first, if not, TU B will be skipped</li> </ol> The term "fails" in this context means the perform result is of one of these types: <ol> <li>  {@link PerformResult.Type#ERROR}</li> <li>  {@link PerformResult.Type#SKIPPED_CONDITION}</li> <li>  {@link PerformResult.Type#SKIPPED_DEPENDENCY}</li> </ol> A dependency failure is also possible if perform result type is   {@link PerformResult.Type#EXECUTION_RESULT}, and the execution result type is one of the following: <ol> <li>  {@link com.paypal.butterfly.extensions.api.TUExecutionResult.Type#NULL} (for TUs only)</li><li> {@link com.paypal.butterfly.extensions.api.TUExecutionResult.Type#ERROR} (for TUs only)</li><li> {@link com.paypal.butterfly.extensions.api.TOExecutionResult.Type#ERROR} (for TOs only)</li></ol> <br> See also: <ul> <li> {@link #checkDependencies(TransformationContext)}</li> <li>  {@link Result#dependencyFailureCheck()}</li> <li>  {@link TUExecutionResult#dependencyFailureCheck()}</li> <li>  {@link TOExecutionResult#dependencyFailureCheck()}</li> <li>  {@link PerformResult#dependencyFailureCheck()}</li> </ul>
 * @param dependencies
 */
public final TU dependsOn(String... dependencies){
  if (dependencies != null) {
    for (    String dependency : dependencies) {
      if (StringUtils.isBlank(dependency))       throw new IllegalArgumentException("String_Node_Str");
    }
  }
  this.dependencies=dependencies;
  return (TU)this;
}