Program: 57939
Project: 57939
Buggy source:
@Override @SuppressWarnings("String_Node_Str") protected void setArraysToDimensions(){
  int iIntArrayIndex=0;
  int iFloatArrayIndex=0;
  int iStringArrayIndex=0;
  int dimensionIndex=0;
  DataTable set=dataDomain.getTable();
  for (  DimensionType dimensionType : columnDataTypes) {
switch (dimensionType) {
case INT:
      targetDimensions.get(dimensionIndex).setRawData(intArrays.get(iIntArrayIndex));
    iIntArrayIndex++;
  dimensionIndex++;
break;
case FLOAT:
targetDimensions.get(dimensionIndex).setRawData(floatArrays.get(iFloatArrayIndex));
iFloatArrayIndex++;
dimensionIndex++;
break;
case CERTAINTY:
targetDimensions.get(dimensionIndex - 1).setUncertaintyData(floatArrays.get(iFloatArrayIndex));
dataDomain.getTable().setContainsUncertaintyData(true);
iFloatArrayIndex++;
break;
case STRING:
ArrayList<String> rawStringData=stringLists.get(iStringArrayIndex);
rawStringData=fillUp(rawStringData);
((NominalDimension<String>)targetDimensions.get(dimensionIndex)).setRawNominalData(rawStringData);
iStringArrayIndex++;
dimensionIndex++;
break;
case SKIP:
break;
case GROUP_NUMBER:
int[] iArGroupInfo=groupInfo.get(0);
DataTableUtils.setContentGroupList((DataTable)set,DataTable.RECORD,iArGroupInfo);
iIntArrayIndex++;
break;
case GROUP_REPRESENTATIVE:
int[] iArGroupRepr=groupInfo.get(1);
DataTableUtils.setContentGroupRepresentatives((DataTable)set,DataTable.RECORD,iArGroupRepr);
iIntArrayIndex++;
break;
case ABORT:
if (useExperimentClusterInfo) {
iArGroupInfo=groupInfo.get(2);
DataTableUtils.setDimensionGroupList((DataTable)set,DataTable.DIMENSION,iArGroupInfo);
iArGroupRepr=groupInfo.get(3);
DataTableUtils.setDimensionGroupRepresentatives((DataTable)set,DataTable.DIMENSION,iArGroupRepr);
}
return;
default :
throw new IllegalStateException("String_Node_Str" + dimensionType.toString());
}
}
}

Fixed version (ground truth):
@Override @SuppressWarnings("String_Node_Str") protected void setArraysToDimensions(){
  int iIntArrayIndex=0;
  int iFloatArrayIndex=0;
  int iStringArrayIndex=0;
  int dimensionIndex=0;
  DataTable table=dataDomain.getTable();
  for (  DimensionType dimensionType : columnDataTypes) {
switch (dimensionType) {
case INT:
      targetDimensions.get(dimensionIndex).setRawData(intArrays.get(iIntArrayIndex));
    iIntArrayIndex++;
  dimensionIndex++;
break;
case FLOAT:
targetDimensions.get(dimensionIndex).setRawData(floatArrays.get(iFloatArrayIndex));
iFloatArrayIndex++;
dimensionIndex++;
break;
case CERTAINTY:
targetDimensions.get(dimensionIndex - 1).setUncertaintyData(floatArrays.get(iFloatArrayIndex));
dataDomain.getTable().setContainsUncertaintyData(true);
iFloatArrayIndex++;
break;
case STRING:
ArrayList<String> rawStringData=stringLists.get(iStringArrayIndex);
rawStringData=fillUp(rawStringData);
((NominalDimension<String>)targetDimensions.get(dimensionIndex)).setRawNominalData(rawStringData);
iStringArrayIndex++;
dimensionIndex++;
break;
case SKIP:
break;
case GROUP_NUMBER:
int[] iArGroupInfo=groupInfo.get(0);
DataTableUtils.setContentGroupList((DataTable)table,DataTable.RECORD,iArGroupInfo);
iIntArrayIndex++;
break;
case GROUP_REPRESENTATIVE:
int[] iArGroupRepr=groupInfo.get(1);
DataTableUtils.setContentGroupRepresentatives((DataTable)table,DataTable.RECORD,iArGroupRepr);
iIntArrayIndex++;
break;
case ABORT:
if (useExperimentClusterInfo) {
iArGroupInfo=groupInfo.get(2);
DataTableUtils.setDimensionGroupList((DataTable)table,DataTable.DIMENSION,iArGroupInfo);
iArGroupRepr=groupInfo.get(3);
DataTableUtils.setDimensionGroupRepresentatives((DataTable)table,DataTable.DIMENSION,iArGroupRepr);
}
return;
default :
throw new IllegalStateException("String_Node_Str" + dimensionType.toString());
}
}
}