Program: 125370
Project: 125370
Buggy source:
@SuppressWarnings("String_Node_Str") public void modify(Object tableItem,String idColumn,Object value){
  if (((TableItem)tableItem).isDisposed()) {
    log.warn(Messages.getString("String_Node_Str"),new Exception());
    return;
  }
  Object bean=((TableItem)tableItem).getData();
  TableViewerCreatorColumn column=tableViewerCreator.getColumn(idColumn);
  boolean modifiedByColumnCellModifier=false;
  if (column.getColumnCellModifier() != null) {
    modifiedByColumnCellModifier=column.getColumnCellModifier().modify(bean,value);
  }
  if (!modifiedByColumnCellModifier && column.getBeanPropertyAccessors() != null) {
    Object typedValue=null;
    if (column.getCellEditorValueAdapter() != null) {
      typedValue=column.getCellEditorValueAdapter().getOriginalTypedValue(column.getCellEditor(),value);
    }
 else {
      typedValue=value;
    }
    if (typedValue == null && column.getDefaultInternalValue() != null) {
      typedValue=column.getDefaultInternalValue();
    }
    Object previousValue=AccessorUtils.get(bean,column);
    boolean needCommand=true;
    if (column.getCellEditor() != null && column.getCellEditor().getControl() != null) {
      needCommand=column.getCellEditor().getControl().isEnabled();
    }
    tableViewerCreator.setBeanValue(column,bean,typedValue,needCommand);
    fireCellEditorApplied((TableItem)tableItem,bean,column,value,previousValue,typedValue);
  }
  ModifiedObjectInfo modifiedObjectInfo=this.tableViewerCreator.getModifiedObjectInfo();
  modifiedObjectInfo.setPreviousModifiedBean(bean);
  modifiedObjectInfo.setPreviousModifiedIndex(modifiedObjectInfo.getCurrentModifiedIndex());
  modifiedObjectInfo.setCurrentModifiedBean(null);
  modifiedObjectInfo.setPreviousModifiedColumn(modifiedObjectInfo.getCurrentModifiedColumn());
  modifiedObjectInfo.setCurrentModifiedColumn(null);
  modifiedObjectInfo.setOriginalPropertyBeanValue(null);
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public void modify(Object tableItem,String idColumn,Object value){
  if (((TableItem)tableItem).isDisposed()) {
    log.warn(Messages.getString("String_Node_Str"),new Exception());
    return;
  }
  Object bean=((TableItem)tableItem).getData();
  TableViewerCreatorColumn column=tableViewerCreator.getModifiableColumn(idColumn);
  boolean modifiedByColumnCellModifier=false;
  if (column.getColumnCellModifier() != null) {
    modifiedByColumnCellModifier=column.getColumnCellModifier().modify(bean,value);
  }
  if (!modifiedByColumnCellModifier && column.getBeanPropertyAccessors() != null) {
    Object typedValue=null;
    if (column.getCellEditorValueAdapter() != null) {
      typedValue=column.getCellEditorValueAdapter().getOriginalTypedValue(column.getCellEditor(),value);
    }
 else {
      typedValue=value;
    }
    if (typedValue == null && column.getDefaultInternalValue() != null) {
      typedValue=column.getDefaultInternalValue();
    }
    Object previousValue=AccessorUtils.get(bean,column);
    boolean needCommand=true;
    if (column.getCellEditor() != null && column.getCellEditor().getControl() != null) {
      needCommand=column.getCellEditor().getControl().isEnabled();
    }
    tableViewerCreator.setBeanValue(column,bean,typedValue,needCommand);
    fireCellEditorApplied((TableItem)tableItem,bean,column,value,previousValue,typedValue);
  }
  ModifiedObjectInfo modifiedObjectInfo=this.tableViewerCreator.getModifiedObjectInfo();
  modifiedObjectInfo.setPreviousModifiedBean(bean);
  modifiedObjectInfo.setPreviousModifiedIndex(modifiedObjectInfo.getCurrentModifiedIndex());
  modifiedObjectInfo.setCurrentModifiedBean(null);
  modifiedObjectInfo.setPreviousModifiedColumn(modifiedObjectInfo.getCurrentModifiedColumn());
  modifiedObjectInfo.setCurrentModifiedColumn(null);
  modifiedObjectInfo.setOriginalPropertyBeanValue(null);
}