Program: 71444
Project: 71444
Buggy source:
public void run(){
  transStar(ACTION_MSG_MERGE);
  try {
    CrosstabReportItemHandle reportHandle=measureViewHandle.getCrosstab();
    ShowSummaryFieldDialog dialog=new ShowSummaryFieldDialog(UIUtil.getDefaultShell(),reportHandle);
    List list=getDimensionHandles();
    List<MeasureInfo> input=new ArrayList<MeasureInfo>();
    for (int i=0; i < list.size(); i++) {
      MeasureHandle handle=(MeasureHandle)list.get(i);
      MeasureInfo info=new MeasureInfo();
      info.setMeasureName(handle.getQualifiedName());
      info.setMeasureDisplayName(handle.getName());
      info.setExpectedView("String_Node_Str");
      input.add(info);
    }
    int count=reportHandle.getMeasureCount();
    for (int i=0; i < count; i++) {
      MeasureViewHandle viewHandle=reportHandle.getMeasure(i);
      if (viewHandle == null) {
        continue;
      }
      if (viewHandle instanceof ComputedMeasureViewHandle) {
        MeasureInfo info=new MeasureInfo();
        info.setMeasureName(viewHandle.getCubeMeasureName());
        info.setMeasureDisplayName(viewHandle.getCubeMeasureName());
        info.setExpectedView("String_Node_Str");
        info.setShow(true);
        input.add(info);
      }
 else {
        checkStatus(viewHandle,input);
      }
    }
    dialog.setInput(copyInfo(input));
    if (dialog.open() == Window.OK) {
      List result=(List)dialog.getResult();
      boolean isRemove=processor(input,result,false);
      if (isRemove) {
        boolean bool=CrosstabAdaptUtil.needRemoveInvaildBindings(reportHandle);
        processor(input,result,true);
        if (bool) {
          CrosstabAdaptUtil.removeInvalidBindings(reportHandle);
        }
      }
      providerWrapper.switchViews();
      if (needUpdateView) {
        providerWrapper.updateAllAggregationCells(AggregationCellViewAdapter.SWITCH_VIEW_TYPE);
      }
    }
  }
 catch (  SemanticException e) {
    rollBack();
    ExceptionHandler.handle(e);
    return;
  }
  transEnd();
}

Fixed version (ground truth):
public void run(){
  transStar(ACTION_MSG_MERGE);
  try {
    CrosstabReportItemHandle reportHandle=measureViewHandle.getCrosstab();
    ShowSummaryFieldDialog dialog=new ShowSummaryFieldDialog(UIUtil.getDefaultShell(),reportHandle);
    List list=getDimensionHandles();
    List<MeasureInfo> input=new ArrayList<MeasureInfo>();
    for (int i=0; i < list.size(); i++) {
      MeasureHandle handle=(MeasureHandle)list.get(i);
      MeasureInfo info=new MeasureInfo();
      info.setMeasureName(handle.getQualifiedName());
      info.setMeasureDisplayName(handle.getName());
      info.setExpectedView("String_Node_Str");
      input.add(info);
    }
    int count=reportHandle.getMeasureCount();
    for (int i=0; i < count; i++) {
      MeasureViewHandle viewHandle=reportHandle.getMeasure(i);
      if (viewHandle == null) {
        continue;
      }
      if (viewHandle instanceof ComputedMeasureViewHandle) {
        MeasureInfo info=new MeasureInfo();
        info.setMeasureName(viewHandle.getCubeMeasureName());
        info.setMeasureDisplayName(viewHandle.getCubeMeasureName());
        info.setExpectedView("String_Node_Str");
        info.setShow(true);
        input.add(info);
      }
 else {
        checkStatus(viewHandle,input);
      }
    }
    dialog.setInput(copyInfo(input));
    if (dialog.open() == Window.OK) {
      List result=(List)dialog.getResult();
      boolean isRemove=processor(input,result,false);
      if (isRemove) {
        boolean bool=CrosstabAdaptUtil.needRemoveInvaildBindings(reportHandle);
        processor(input,result,true);
        if (bool) {
          CrosstabAdaptUtil.removeInvalidBindings(reportHandle);
        }
      }
 else {
        processor(input,result,true);
      }
      providerWrapper.switchViews();
      if (needUpdateView) {
        providerWrapper.updateAllAggregationCells(AggregationCellViewAdapter.SWITCH_VIEW_TYPE);
      }
    }
  }
 catch (  SemanticException e) {
    rollBack();
    ExceptionHandler.handle(e);
    return;
  }
  transEnd();
}