Program: 78058
Project: 78058
Buggy source:
protected void __execute() throws RemoteException {
  ViewerAttributeBean attrBean=(ViewerAttributeBean)context.getBean();
  try {
    String reportDesignName=attrBean.getReportDesignName();
    String configFileName=reportDesignName.replaceFirst(IBirtConstants.SUFFIX_DESIGN_FILE,IBirtConstants.SUFFIX_DESIGN_CONFIG);
    SessionHandle sessionHandle=DesignEngine.newSession(ULocale.getDefault());
    File configFile=new File(configFileName);
    if (configFile != null && configFile.exists() && configFile.isFile()) {
      configFile.delete();
    }
    ReportDesignHandle handle=sessionHandle.createDesign();
    IReportRunnable runnable=(IReportRunnable)attrBean.getReportDesignHandle(context.getRequest()).getDesignObject();
    ModuleHandle model=runnable.getDesignHandle().getModuleHandle();
    Oprand[] op=this.operation.getOprand();
    if (op != null) {
      for (int i=0; i < op.length; i++) {
        ConfigVariable configVar=new ConfigVariable();
        ParameterHandle parameterHandle=model.findParameter(op[i].getName());
        if (parameterHandle != null) {
          configVar.setName(op[i].getName() + parameterHandle.getID());
          configVar.setValue(op[i].getValue());
          handle.addConfigVariable(configVar);
        }
      }
    }
    handle.saveAs(configFileName);
    handle.close();
    handleUpdate();
  }
 catch (  Exception e) {
    AxisFault fault=new AxisFault();
    fault.setFaultCode(new QName("String_Node_Str"));
    fault.setFaultReason(e.getLocalizedMessage());
    throw fault;
  }
}

Fixed version (ground truth):
protected void __execute() throws RemoteException {
  ViewerAttributeBean attrBean=(ViewerAttributeBean)context.getBean();
  try {
    String reportDesignName=attrBean.getReportDesignName();
    String configFileName=reportDesignName.replaceFirst(IBirtConstants.SUFFIX_DESIGN_FILE,IBirtConstants.SUFFIX_DESIGN_CONFIG);
    SessionHandle sessionHandle=DesignEngine.newSession(ULocale.getDefault());
    File configFile=new File(configFileName);
    if (configFile != null && configFile.exists() && configFile.isFile()) {
      configFile.delete();
    }
    ReportDesignHandle handle=sessionHandle.createDesign();
    IReportRunnable runnable=(IReportRunnable)attrBean.getReportDesignHandle(context.getRequest()).getDesignObject();
    ModuleHandle model=runnable.getDesignHandle().getModuleHandle();
    Oprand[] op=this.operation.getOprand();
    if (op != null) {
      Iterator paramIr=null;
      if (attrBean.getParameterList() != null)       paramIr=attrBean.getParameterList().iterator();
      for (int i=0; i < op.length; i++) {
        ConfigVariable configVar=new ConfigVariable();
        String paramName=op[i].getName();
        String paramValue=op[i].getValue();
        ParameterHandle parameterHandle=model.findParameter(paramName);
        if (parameterHandle != null && paramValue != null && paramIr != null) {
          while (paramIr.hasNext()) {
            ParameterDefinition parameterObj=(ParameterDefinition)paramIr.next();
            if (paramName.equals(parameterObj.getName())) {
              ReportParameterConverter converter=new ReportParameterConverter(parameterObj.getPattern(),attrBean.getLocale());
              Object paramValueObj=converter.parse(paramValue,parameterObj.getDataType());
              converter=new ReportParameterConverter(parameterObj.getPattern(),ULocale.US);
              paramValue=converter.format(paramValueObj);
              break;
            }
          }
          if (paramValue != null) {
            configVar.setName(paramName + parameterHandle.getID());
            configVar.setValue(paramValue);
            handle.addConfigVariable(configVar);
          }
        }
      }
    }
    handle.saveAs(configFileName);
    handle.close();
    handleUpdate();
  }
 catch (  Exception e) {
    AxisFault fault=new AxisFault();
    fault.setFaultCode(new QName("String_Node_Str"));
    fault.setFaultReason(e.getLocalizedMessage());
    throw fault;
  }
}