Program: 69494
Project: 69494
Buggy source:
@Override protected void fitResize(){
  List exclusion=new ArrayList();
  TableEditPart part=(TableEditPart)getSourceEditPart();
  int value=getMouseTrueValueX();
  part.getTableAdapter().transStar(RESIZE_COLUMN_TRANS_LABEL);
  int width=0;
  if (isresizeMultipleColumn()) {
    List list=filterEditPart(part.getViewer().getSelectedEditParts());
    for (int i=0; i < list.size(); i++) {
      int tempValue=value;
      Object model=((EditPart)list.get(i)).getModel();
      ColumnHandleAdapter adapter=HandleAdapterFactory.getInstance().getColumnHandleAdapter(model);
      int start=adapter.getColumnNumber();
      exclusion.add(Integer.valueOf(start));
      int end=start + 1;
      int ori=TableUtil.caleVisualWidth(part,model);
      int adjustWidth=TableUtil.caleVisualWidth(part,part.getColumn(getStart())) + value;
      if (getStart() != start) {
        tempValue=adjustWidth - ori;
      }
      if (start == part.getColumnCount()) {
        end=start;
      }
      width=width + getTrueValue(tempValue,start,end);
      resizeFixColumn(tempValue,start,end);
    }
  }
 else {
    exclusion.add(Integer.valueOf(getStart()));
    width=width + getTrueValue(value,getStart(),getEnd());
    resizeFixColumn(value,getStart(),getEnd());
  }
  Dimension tableSize=part.getFigure().getSize();
  try {
    ReportItemHandle handle=part.getTableAdapter().getReportItemHandle();
    double tbWidth=converPixToDefaultUnit(tableSize.width + width);
    setDimensionValue(handle,tbWidth);
  }
 catch (  SemanticException e) {
    part.getTableAdapter().rollBack();
    ExceptionHandler.handle(e);
  }
  adjustOthersColumn(exclusion);
  part.getTableAdapter().transEnd();
}

Fixed version (ground truth):
@Override protected void fitResize(){
  List exclusion=new ArrayList();
  TableEditPart part=(TableEditPart)getSourceEditPart();
  int value=getMouseTrueValueX();
  part.getTableAdapter().transStar(RESIZE_COLUMN_TRANS_LABEL);
  int width=0;
  if (isresizeMultipleColumn() && isCtrlDown()) {
    List list=filterEditPart(part.getViewer().getSelectedEditParts());
    for (int i=0; i < list.size(); i++) {
      int tempValue=value;
      Object model=((EditPart)list.get(i)).getModel();
      ColumnHandleAdapter adapter=HandleAdapterFactory.getInstance().getColumnHandleAdapter(model);
      int start=adapter.getColumnNumber();
      exclusion.add(Integer.valueOf(start));
      int end=start + 1;
      int ori=TableUtil.caleVisualWidth(part,model);
      int adjustWidth=TableUtil.caleVisualWidth(part,part.getColumn(getStart())) + value;
      if (getStart() != start) {
        tempValue=adjustWidth - ori;
      }
      if (start == part.getColumnCount()) {
        end=start;
      }
      width=width + getTrueValue(tempValue,start,end);
      resizeFixColumn(tempValue,start,end);
    }
  }
 else {
    exclusion.add(Integer.valueOf(getStart()));
    width=width + getTrueValue(value,getStart(),getEnd());
    resizeFixColumn(value,getStart(),getEnd());
  }
  if (!isCtrlDown()) {
    exclusion.add(Integer.valueOf(getEnd()));
    if (getStart() != getEnd()) {
      width=0;
    }
  }
  Dimension tableSize=part.getFigure().getSize();
  try {
    ReportItemHandle handle=part.getTableAdapter().getReportItemHandle();
    double tbWidth=converPixToDefaultUnit(tableSize.width + width);
    setDimensionValue(handle,tbWidth);
  }
 catch (  SemanticException e) {
    part.getTableAdapter().rollBack();
    ExceptionHandler.handle(e);
  }
  adjustOthersColumn(exclusion);
  part.getTableAdapter().transEnd();
}