Program: 70602
Project: 70602
Buggy source:
/** 
 * create a Action.
 * @param handle action in DE
 * @return action in Engine.
 */
protected ActionDesign createAction(ActionHandle handle){
  ActionDesign action=new ActionDesign();
  String linkType=handle.getLinkType();
  action.setTooltip(createConstant(handle.getToolTip()));
  if (EngineIRConstants.ACTION_LINK_TYPE_HYPERLINK.equals(linkType)) {
    action.setHyperlink(createExpression(validateExpression(handle.getURI())));
    action.setTargetWindow(createExpression(handle.getTargetWindow()));
  }
 else   if (EngineIRConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals(linkType)) {
    action.setBookmark(createExpression(validateExpression(handle.getTargetBookmark())));
  }
 else   if (EngineIRConstants.ACTION_LINK_TYPE_DRILL_THROUGH.equals(linkType)) {
    action.setTargetWindow(createExpression(handle.getTargetWindow()));
    action.setTargetFileType(createExpression(handle.getTargetFileType()));
    DrillThroughActionDesign drillThrough=new DrillThroughActionDesign();
    action.setDrillThrough(drillThrough);
    drillThrough.setReportName(createConstant(handle.getReportName()));
    drillThrough.setFormat(createConstant(handle.getFormatType()));
    drillThrough.setBookmark(createExpression(validateExpression(handle.getTargetBookmark())));
    drillThrough.setBookmarkType(createExpression(handle.getTargetBookmarkType()));
    Map params=new HashMap();
    Iterator paramIte=handle.paramBindingsIterator();
    while (paramIte.hasNext()) {
      ParamBindingHandle member=(ParamBindingHandle)paramIte.next();
      params.put(member.getParamName(),createExpression(validateExpression(member.getExpression())));
    }
    drillThrough.setParameters(params);
  }
 else {
    assert(false);
  }
  return action;
}

Fixed version (ground truth):
/** 
 * create a Action.
 * @param handle action in DE
 * @return action in Engine.
 */
protected ActionDesign createAction(ActionHandle handle){
  ActionDesign action=new ActionDesign();
  String linkType=handle.getLinkType();
  action.setTooltip(createConstant(handle.getToolTip()));
  if (EngineIRConstants.ACTION_LINK_TYPE_HYPERLINK.equals(linkType)) {
    action.setHyperlink(createExpression(validateExpression(handle.getURI())));
    action.setTargetWindow(createConstant(handle.getTargetWindow()));
  }
 else   if (EngineIRConstants.ACTION_LINK_TYPE_BOOKMARK_LINK.equals(linkType)) {
    action.setBookmark(createExpression(validateExpression(handle.getTargetBookmark())));
  }
 else   if (EngineIRConstants.ACTION_LINK_TYPE_DRILL_THROUGH.equals(linkType)) {
    action.setTargetWindow(createConstant(handle.getTargetWindow()));
    action.setTargetFileType(createConstant(handle.getTargetFileType()));
    DrillThroughActionDesign drillThrough=new DrillThroughActionDesign();
    action.setDrillThrough(drillThrough);
    drillThrough.setReportName(createConstant(handle.getReportName()));
    drillThrough.setFormat(createConstant(handle.getFormatType()));
    drillThrough.setBookmark(createExpression(validateExpression(handle.getTargetBookmark())));
    drillThrough.setBookmarkType(createConstant(handle.getTargetBookmarkType()));
    Map params=new HashMap();
    Iterator paramIte=handle.paramBindingsIterator();
    while (paramIte.hasNext()) {
      ParamBindingHandle member=(ParamBindingHandle)paramIte.next();
      params.put(member.getParamName(),createExpression(validateExpression(member.getExpression())));
    }
    drillThrough.setParameters(params);
  }
 else {
    assert(false);
  }
  return action;
}