Program: 67054
Project: 67054
Buggy source:
/** 
 * @param action
 * @param source
 */
private void processActionImpl(Action action,StructureSource source){
  if (ActionType.URL_REDIRECT_LITERAL.equals(action.getType())) {
    if (action.getValue() instanceof URLValue) {
      URLValue uv=(URLValue)action.getValue();
      generateURLValue(source,uv);
    }
 else     if (action.getValue() instanceof MultiURLValues) {
      for (      URLValue uv : ((MultiURLValues)action.getValue()).getURLValues()) {
        generateURLValue(source,uv);
      }
    }
  }
 else   if (ActionType.SHOW_TOOLTIP_LITERAL.equals(action.getType())) {
    TooltipValue tv=(TooltipValue)action.getValue();
    if (StructureType.SERIES_DATA_POINT.equals(source.getType())) {
      final DataPointHints dph=(DataPointHints)source.getSource();
      if (!dph.isVirtual()) {
        tv.setText(ChartUtil.stringValue(dph.getUserValue(tv.getText())));
      }
 else {
        tv.setText(null);
      }
    }
 else     if (StructureType.LEGEND_ENTRY.equals(source.getType())) {
      LegendItemHints lih=(LegendItemHints)source.getSource();
      if (tv.getText() == null || tv.getText().equals("String_Node_Str")) {
        tv.setText(lih.getItemText());
      }
    }
  }
 else   if (ActionType.INVOKE_SCRIPT_LITERAL.equals(action.getType())) {
    ScriptValue sv=(ScriptValue)action.getValue();
    if (cacheScriptEvaluator == null) {
      cacheScriptEvaluator=new HashMap<String,String>();
    }
    String evaluatResult=cacheScriptEvaluator.get(sv.getScript());
    if (evaluatResult == null) {
      evaluatResult=evaluateExpression(sv.getScript());
      cacheScriptEvaluator.put(sv.getScript(),evaluatResult);
    }
    sv.setScript(evaluatResult);
  }
}

Fixed version (ground truth):
/** 
 * @param action
 * @param source
 */
private void processActionImpl(Action action,StructureSource source){
  if (ActionType.URL_REDIRECT_LITERAL.equals(action.getType())) {
    if (action.getValue() instanceof URLValue) {
      URLValue uv=(URLValue)action.getValue();
      generateURLValue(source,uv);
    }
 else     if (action.getValue() instanceof MultiURLValues) {
      for (      URLValue uv : ((MultiURLValues)action.getValue()).getURLValues()) {
        generateURLValue(source,uv);
      }
    }
  }
 else   if (ActionType.SHOW_TOOLTIP_LITERAL.equals(action.getType())) {
    TooltipValue tv=(TooltipValue)action.getValue();
    if (StructureType.SERIES_DATA_POINT.equals(source.getType())) {
      final DataPointHints dph=(DataPointHints)source.getSource();
      if (!dph.isVirtual()) {
        Object value=dph.getUserValue(tv.getText());
        if (value instanceof Number) {
          tv.setText(ChartUtil.getDefaultNumberFormat().format(value));
        }
 else {
          tv.setText(ChartUtil.stringValue(value));
        }
      }
 else {
        tv.setText(null);
      }
    }
 else     if (StructureType.LEGEND_ENTRY.equals(source.getType())) {
      LegendItemHints lih=(LegendItemHints)source.getSource();
      if (tv.getText() == null || tv.getText().equals("String_Node_Str")) {
        tv.setText(lih.getItemText());
      }
    }
  }
 else   if (ActionType.INVOKE_SCRIPT_LITERAL.equals(action.getType())) {
    ScriptValue sv=(ScriptValue)action.getValue();
    if (cacheScriptEvaluator == null) {
      cacheScriptEvaluator=new HashMap<String,String>();
    }
    String evaluatResult=cacheScriptEvaluator.get(sv.getScript());
    if (evaluatResult == null) {
      evaluatResult=evaluateExpression(sv.getScript());
      cacheScriptEvaluator.put(sv.getScript(),evaluatResult);
    }
    sv.setScript(evaluatResult);
  }
}