Program: 130098
Project: 130098
Buggy source:
private void refreshExistItem(final MetadataTable existTable,final TreeItem item){
  Display.getDefault().syncExec(new Runnable(){
    @Override public void run(){
      orgomg.cwm.objectmodel.core.Package pack=(orgomg.cwm.objectmodel.core.Package)existTable.eContainer();
      boolean confirm=MessageDialog.openConfirm(Display.getDefault().getActiveShell(),"String_Node_Str","String_Node_Str" + existTable.getLabel() + "String_Node_Str"+ pack.getName()+ "String_Node_Str");
      if (confirm) {
        TreeItem existItem=getExistItem(existTable);
        TableNode existTableItem=getExistCheckedTable((TableNode)item.getData());
        if (existItem == null) {
          if (existTableItem == null) {
            return;
          }
 else {
            clearTableItem(existTableItem,true);
          }
        }
 else {
          clearTableItem(existItem);
          existItem.setChecked(false);
        }
        item.setText(3,Messages.getString("String_Node_Str"));
        countPending++;
        parentWizardPage.setPageComplete(false);
        refreshTable(item,-1);
      }
 else {
        item.setChecked(false);
        boolean hasCheckedItem=false;
        TreeItem parentItem=item.getParentItem();
        if (parentItem != null) {
          for (          TreeItem i : parentItem.getItems()) {
            if (i.getChecked()) {
              hasCheckedItem=true;
              break;
            }
          }
        }
        if (!hasCheckedItem && parentItem != null) {
          parentItem.setChecked(false);
        }
      }
    }
  }
);
}

Fixed version (ground truth):
private void refreshExistItem(final MetadataTable existTable,final TreeItem item){
  Display.getDefault().syncExec(new Runnable(){
    @Override public void run(){
      orgomg.cwm.objectmodel.core.Package pack=(orgomg.cwm.objectmodel.core.Package)existTable.eContainer();
      boolean confirm=MessageDialog.openConfirm(Display.getDefault().getActiveShell(),"String_Node_Str","String_Node_Str" + existTable.getLabel() + "String_Node_Str"+ pack.getName()+ "String_Node_Str");
      if (confirm) {
        TreeItem existItem=getExistItem(existTable);
        TableNode existTableItem=getExistCheckedTable((TableNode)item.getData());
        if (existItem == null) {
          if (existTableItem == null) {
            return;
          }
 else {
            clearTableItem(existTableItem,true);
          }
        }
 else {
          clearTableItem(existItem);
          existItem.setChecked(false);
        }
        item.setText(3,Messages.getString("String_Node_Str"));
        refreshColumnData(existTableItem,item);
        countPending++;
        parentWizardPage.setPageComplete(false);
        refreshTable(item,-1);
      }
 else {
        item.setChecked(false);
        boolean hasCheckedItem=false;
        TreeItem parentItem=item.getParentItem();
        if (parentItem != null) {
          for (          TreeItem i : parentItem.getItems()) {
            if (i.getChecked()) {
              hasCheckedItem=true;
              break;
            }
          }
        }
        if (!hasCheckedItem && parentItem != null) {
          parentItem.setChecked(false);
        }
      }
    }
  }
);
}