Program: 73908
Project: 73908
Buggy source:
private Composite createParamSection(ScalarParameter param,Composite parent){
  boolean isRequired=param.getHandle().isRequired();
  boolean isStringType=param.getHandle().getDataType().equals(DesignChoiceConstants.PARAM_TYPE_STRING);
  if (isRequired) {
    isRequiredParameters.add(param.getHandle().getName());
  }
  Composite container=new Composite(parent,SWT.NONE);
  container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  GridLayout layout=new GridLayout();
  layout.numColumns=2;
  container.setLayout(layout);
  new Label(container,SWT.NONE).setText(param.getHandle().getDisplayLabel() + "String_Node_Str");
  if (param instanceof StaticTextParameter) {
    final StaticTextParameter textParam=(StaticTextParameter)param;
    String value=textParam.getDefaultValue();
    dataTypeCheckList.add(textParam);
    Text input=new Text(container,SWT.BORDER);
    input.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    input.addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        Text input=(Text)e.getSource();
        paramValues.put(textParam.getHandle().getName(),input.getText());
      }
    }
);
    if (paramValues.containsKey(textParam.getHandle().getName())) {
      value=paramValues.get(textParam.getHandle().getName()).toString();
    }
    if (value != null) {
      input.setText(value);
    }
  }
 else   if (param instanceof RadioParameter) {
    final RadioParameter radioParameter=(RadioParameter)param;
    Object value=null;
    try {
      value=radioParameter.converToDataType(radioParameter.getDefaultValue());
    }
 catch (    BirtException e) {
    }
    if (paramValues.containsKey(radioParameter.getHandle().getName())) {
      value=paramValues.get(radioParameter.getHandle().getName());
    }
    List list=radioParameter.getValueList();
    if (!isRequired) {
      list.add(InputParameterDialog.nullValueChoice);
    }
    for (int i=0; i < list.size(); i++) {
      if (i > 0) {
        new Label(container,SWT.NONE);
      }
      IParameterSelectionChoice choice=(IParameterSelectionChoice)list.get(i);
      Button button=new Button(container,SWT.RADIO);
      button.setText(choice.getLabel());
      button.setData(choice.getValue());
      if (choice.getValue() != null && choice.getValue().equals(value)) {
        button.setSelection(true);
      }
 else       if (value == null && choice.getLabel().equals(NULL_VALUE_STR)) {
        button.setSelection(true);
      }
      button.addSelectionListener(new SelectionListener(){
        public void widgetDefaultSelected(        SelectionEvent e){
        }
        public void widgetSelected(        SelectionEvent e){
          Button button=(Button)e.getSource();
          paramValues.put(radioParameter.getHandle().getName(),button.getData());
        }
      }
);
    }
  }
 else   if (param instanceof ListingParameter) {
    final ListingParameter listParam=(ListingParameter)param;
    Object value=null;
    try {
      value=listParam.converToDataType(listParam.getDefaultValue());
    }
 catch (    BirtException e) {
    }
    if (paramValues.containsKey(listParam.getHandle().getName())) {
      value=paramValues.get(listParam.getHandle().getName());
      if (value != null) {
        listParam.setSelectionValue(value.toString());
      }
    }
    Combo combo=new Combo(container,SWT.BORDER);
    combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    List list=new ArrayList();
    if (isStringType && !isRequired) {
      list.add(blankValueChoice);
      list.addAll(listParam.getValueList());
    }
 else {
      list=listParam.getValueList();
    }
    if (!isRequired) {
      list.add(InputParameterDialog.nullValueChoice);
    }
    for (Iterator iterator=list.iterator(); iterator.hasNext(); ) {
      IParameterSelectionChoice choice=(IParameterSelectionChoice)iterator.next();
      String label=(String)(choice.getLabel() == null ? choice.getValue() : choice.getLabel());
      if (label != null) {
        combo.add(label);
        combo.setData(label,choice.getValue());
      }
    }
    if (value == null && !isRequired) {
      combo.select(combo.getItemCount() - 1);
    }
 else {
      for (int i=0; i < combo.getItemCount(); i++) {
        if (combo.getData(combo.getItem(i)).equals(value)) {
          combo.select(i);
          break;
        }
      }
    }
    combo.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      SelectionEvent e){
      }
      public void widgetSelected(      SelectionEvent e){
        Combo combo=(Combo)e.getSource();
        paramValues.put(listParam.getHandle().getName(),combo.getData(combo.getItem(combo.getSelectionIndex())));
        if (listParam.getParentGroup() instanceof CascadingParameterGroup) {
          CascadingParameterGroup group=(CascadingParameterGroup)listParam.getParentGroup();
          if (group.getPostParameter(listParam) != null) {
            try {
              createParameters();
            }
 catch (            RuntimeException e1) {
              e1.printStackTrace();
            }
          }
        }
      }
    }
);
  }
  return container;
}

Fixed version (ground truth):
private Composite createParamSection(ScalarParameter param,Composite parent){
  boolean isRequired=param.getHandle().isRequired();
  boolean isStringType=param.getHandle().getDataType().equals(DesignChoiceConstants.PARAM_TYPE_STRING);
  if (isRequired) {
    isRequiredParameters.add(param.getHandle().getName());
  }
  Composite container=new Composite(parent,SWT.NONE);
  container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  GridLayout layout=new GridLayout();
  layout.numColumns=2;
  container.setLayout(layout);
  new Label(container,SWT.NONE).setText(param.getHandle().getDisplayLabel() + "String_Node_Str");
  if (param instanceof StaticTextParameter) {
    final StaticTextParameter textParam=(StaticTextParameter)param;
    String value=textParam.getDefaultValue();
    dataTypeCheckList.add(textParam);
    Text input=new Text(container,SWT.BORDER);
    input.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    input.addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        Text input=(Text)e.getSource();
        paramValues.put(textParam.getHandle().getName(),input.getText());
      }
    }
);
    if (paramValues.containsKey(textParam.getHandle().getName())) {
      value=paramValues.get(textParam.getHandle().getName()).toString();
    }
    if (value != null) {
      input.setText(value);
    }
  }
 else   if (param instanceof RadioParameter) {
    final RadioParameter radioParameter=(RadioParameter)param;
    Object value=null;
    try {
      value=radioParameter.converToDataType(radioParameter.getDefaultValue());
    }
 catch (    BirtException e) {
    }
    if (paramValues.containsKey(radioParameter.getHandle().getName())) {
      value=paramValues.get(radioParameter.getHandle().getName());
    }
    List list=radioParameter.getValueList();
    if (!isRequired) {
      list.add(InputParameterDialog.nullValueChoice);
    }
    for (int i=0; i < list.size(); i++) {
      if (i > 0) {
        new Label(container,SWT.NONE);
      }
      IParameterSelectionChoice choice=(IParameterSelectionChoice)list.get(i);
      Button button=new Button(container,SWT.RADIO);
      button.setText(choice.getLabel());
      button.setData(choice.getValue());
      if (choice.getValue() != null && choice.getValue().equals(value)) {
        button.setSelection(true);
      }
 else       if (value == null && choice.getLabel().equals(NULL_VALUE_STR)) {
        button.setSelection(true);
      }
      button.addSelectionListener(new SelectionListener(){
        public void widgetDefaultSelected(        SelectionEvent e){
        }
        public void widgetSelected(        SelectionEvent e){
          Button button=(Button)e.getSource();
          paramValues.put(radioParameter.getHandle().getName(),button.getData());
        }
      }
);
    }
  }
 else   if (param instanceof ListingParameter) {
    final ListingParameter listParam=(ListingParameter)param;
    Object value=null;
    try {
      value=listParam.converToDataType(listParam.getDefaultValue());
    }
 catch (    BirtException e) {
    }
    if (paramValues.containsKey(listParam.getHandle().getName())) {
      value=paramValues.get(listParam.getHandle().getName());
      if (value != null) {
        listParam.setSelectionValue(value.toString());
      }
    }
    Combo combo=new Combo(container,SWT.BORDER);
    combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    List list=new ArrayList();
    if (isStringType && !isRequired) {
      list.add(blankValueChoice);
      list.addAll(listParam.getValueList());
    }
 else {
      list=listParam.getValueList();
    }
    if (!isRequired) {
      list.add(InputParameterDialog.nullValueChoice);
    }
    for (Iterator iterator=list.iterator(); iterator.hasNext(); ) {
      IParameterSelectionChoice choice=(IParameterSelectionChoice)iterator.next();
      String label=(choice.getLabel() == null ? String.valueOf(choice.getValue()) : choice.getLabel());
      if (label != null) {
        combo.add(label);
        combo.setData(label,choice.getValue());
      }
    }
    if (value == null && !isRequired) {
      combo.select(combo.getItemCount() - 1);
    }
 else {
      for (int i=0; i < combo.getItemCount(); i++) {
        if (combo.getData(combo.getItem(i)).equals(value)) {
          combo.select(i);
          break;
        }
      }
    }
    combo.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      SelectionEvent e){
      }
      public void widgetSelected(      SelectionEvent e){
        Combo combo=(Combo)e.getSource();
        paramValues.put(listParam.getHandle().getName(),combo.getData(combo.getItem(combo.getSelectionIndex())));
        if (listParam.getParentGroup() instanceof CascadingParameterGroup) {
          CascadingParameterGroup group=(CascadingParameterGroup)listParam.getParentGroup();
          if (group.getPostParameter(listParam) != null) {
            try {
              createParameters();
            }
 catch (            RuntimeException e1) {
              e1.printStackTrace();
            }
          }
        }
      }
    }
);
  }
  return container;
}