Program: 130130
Project: 130130
Buggy source:
/** 
 * DOC yexiaowei Comment method "createTableViewer".
 * @param compositeExcelViewer
 */
private void createTableViewer(Composite compositeExcelViewer){
  viewer=new TableViewer(compositeExcelViewer,SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL| SWT.BORDER);
  Table table=viewer.getTable();
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  GridData layData=new GridData(GridData.FILL_BOTH);
  layData.horizontalSpan=2;
  table.setLayoutData(layData);
  viewer.setContentProvider(new IStructuredContentProvider(){
    public Object[] getElements(    Object inputElement){
      if (inputElement instanceof List) {
        return ((List)inputElement).toArray();
      }
      return null;
    }
    public void dispose(){
    }
    public void inputChanged(    Viewer viewer,    Object oldInput,    Object newInput){
    }
  }
);
  viewer.setLabelProvider(new ITableLabelProvider(){
    public Image getColumnImage(    Object element,    int columnIndex){
      return null;
    }
    public String getColumnText(    Object element,    int columnIndex){
      if (element instanceof String[]) {
        try {
          return ((String[])element)[columnIndex];
        }
 catch (        Exception e) {
          return "String_Node_Str";
        }
      }
      return "String_Node_Str";
    }
    public void addListener(    ILabelProviderListener listener){
    }
    public void dispose(){
    }
    public boolean isLabelProperty(    Object element,    String property){
      return true;
    }
    public void removeListener(    ILabelProviderListener listener){
    }
  }
);
}

Fixed version (ground truth):
/** 
 * DOC yexiaowei Comment method "createTableViewer".
 * @param compositeExcelViewer
 */
private void createTableViewer(Composite compositeExcelViewer){
  viewer=new TableViewer(compositeExcelViewer,SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL| SWT.BORDER);
  Table table=viewer.getTable();
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  GridData layData=new GridData(GridData.FILL_BOTH);
  layData.horizontalSpan=2;
  table.setLayoutData(layData);
  viewer.setContentProvider(new IStructuredContentProvider(){
    @Override public Object[] getElements(    Object inputElement){
      if (inputElement instanceof List) {
        return ((List)inputElement).toArray();
      }
      return null;
    }
    @Override public void dispose(){
    }
    @Override public void inputChanged(    Viewer viewer,    Object oldInput,    Object newInput){
    }
  }
);
  viewer.setLabelProvider(new ITableLabelProvider(){
    @Override public Image getColumnImage(    Object element,    int columnIndex){
      return null;
    }
    @Override public String getColumnText(    Object element,    int columnIndex){
      if (element instanceof String[]) {
        try {
          return ((String[])element)[columnIndex];
        }
 catch (        Exception e) {
          return "String_Node_Str";
        }
      }
      return "String_Node_Str";
    }
    @Override public void addListener(    ILabelProviderListener listener){
    }
    @Override public void dispose(){
    }
    @Override public boolean isLabelProperty(    Object element,    String property){
      return true;
    }
    @Override public void removeListener(    ILabelProviderListener listener){
    }
  }
);
}