Program: 65639
Project: 65639
Buggy source:
protected String[] getCompatibleDataTypes(String dataType){
  String[] compatibleTypes=null;
  if (DesignChoiceConstants.COLUMN_DATA_TYPE_STRING.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL,DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER,DesignChoiceConstants.COLUMN_DATA_TYPE_BOOLEAN,DesignChoiceConstants.COLUMN_DATA_TYPE_DATETIME,DesignChoiceConstants.COLUMN_DATA_TYPE_DATE,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_TIME};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_TIME.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_DATE.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_DATETIME.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING,DesignChoiceConstants.COLUMN_DATA_TYPE_DATE,DesignChoiceConstants.COLUMN_DATA_TYPE_TIME};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_JAVA_OBJECT.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_BOOLEAN.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING,DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING,DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER,DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL};
  }
  if (compatibleTypes == null)   return new String[0];
  for (int i=0; i < compatibleTypes.length; i++) {
    compatibleTypes[i]=dataTypes.findChoice(compatibleTypes[i]).getDisplayName();
  }
  return compatibleTypes;
}

Fixed version (ground truth):
protected String[] getCompatibleDataTypes(String dataType){
  String[] compatibleTypes=null;
  if (DesignChoiceConstants.COLUMN_DATA_TYPE_STRING.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL,DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER,DesignChoiceConstants.COLUMN_DATA_TYPE_BOOLEAN,DesignChoiceConstants.COLUMN_DATA_TYPE_DATETIME,DesignChoiceConstants.COLUMN_DATA_TYPE_DATE,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_TIME,DesignChoiceConstants.COLUMN_DATA_TYPE_BLOB};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_TIME.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_DATE.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_DATETIME.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING,DesignChoiceConstants.COLUMN_DATA_TYPE_DATE,DesignChoiceConstants.COLUMN_DATA_TYPE_TIME};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_JAVA_OBJECT.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_BOOLEAN.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING,DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL,DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT,DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_FLOAT.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING,DesignChoiceConstants.COLUMN_DATA_TYPE_INTEGER,DesignChoiceConstants.COLUMN_DATA_TYPE_DECIMAL};
  }
 else   if (DesignChoiceConstants.COLUMN_DATA_TYPE_BLOB.equals(dataType)) {
    compatibleTypes=new String[]{DesignChoiceConstants.COLUMN_DATA_TYPE_STRING};
  }
  if (compatibleTypes == null)   return new String[0];
  for (int i=0; i < compatibleTypes.length; i++) {
    compatibleTypes[i]=dataTypes.findChoice(compatibleTypes[i]).getDisplayName();
  }
  return compatibleTypes;
}