Program: 64155
Project: 64155
Buggy source:
protected String convertObjectToString(Object sourceObject,QName schemaTypeQName) throws ConversionException {
  if (sourceObject instanceof Calendar) {
    return stringFromCalendar((Calendar)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof Character && sourceObject.equals((char)0)) {
    return Constants.EMPTY_STRING;
  }
  if (sourceObject instanceof QName) {
    return stringFromQName((QName)sourceObject);
  }
  if (sourceObject instanceof java.sql.Date) {
    return stringFromSQLDate((java.sql.Date)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof java.sql.Time) {
    return stringFromSQLTime((java.sql.Time)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof java.sql.Timestamp) {
    return stringFromTimestamp((Timestamp)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof java.util.Date) {
    return stringFromDate((java.util.Date)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof XMLGregorianCalendar) {
    return stringFromXMLGregorianCalendar((XMLGregorianCalendar)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof Duration) {
    return stringFromDuration((Duration)sourceObject);
  }
  if (sourceObject instanceof Double) {
    if (Double.POSITIVE_INFINITY == ((Double)sourceObject)) {
      return Constants.POSITIVE_INFINITY;
    }
    if (Double.NEGATIVE_INFINITY == ((Double)sourceObject)) {
      return Constants.NEGATIVE_INFINITY;
    }
    return ((Double)sourceObject).toString();
  }
  if (sourceObject instanceof Float) {
    if (Float.POSITIVE_INFINITY == ((Float)sourceObject)) {
      return Constants.POSITIVE_INFINITY;
    }
    if (Float.NEGATIVE_INFINITY == ((Float)sourceObject)) {
      return Constants.NEGATIVE_INFINITY;
    }
    return ((Float)sourceObject).toString();
  }
  return super.convertObjectToString(sourceObject);
}

Fixed version (ground truth):
protected String convertObjectToString(Object sourceObject,QName schemaTypeQName) throws ConversionException {
  if (sourceObject instanceof Calendar) {
    return stringFromCalendar((Calendar)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof Character) {
    if (isNumericQName(schemaTypeQName)) {
      return Integer.toString((int)(Character)sourceObject);
    }
 else {
      if (sourceObject.equals((char)0)) {
        return Constants.EMPTY_STRING;
      }
      super.convertObjectToString(sourceObject);
    }
  }
  if (sourceObject instanceof QName) {
    return stringFromQName((QName)sourceObject);
  }
  if (sourceObject instanceof java.sql.Date) {
    return stringFromSQLDate((java.sql.Date)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof java.sql.Time) {
    return stringFromSQLTime((java.sql.Time)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof java.sql.Timestamp) {
    return stringFromTimestamp((Timestamp)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof java.util.Date) {
    return stringFromDate((java.util.Date)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof XMLGregorianCalendar) {
    return stringFromXMLGregorianCalendar((XMLGregorianCalendar)sourceObject,schemaTypeQName);
  }
  if (sourceObject instanceof Duration) {
    return stringFromDuration((Duration)sourceObject);
  }
  if (sourceObject instanceof Double) {
    if (Double.POSITIVE_INFINITY == ((Double)sourceObject)) {
      return Constants.POSITIVE_INFINITY;
    }
    if (Double.NEGATIVE_INFINITY == ((Double)sourceObject)) {
      return Constants.NEGATIVE_INFINITY;
    }
    return ((Double)sourceObject).toString();
  }
  if (sourceObject instanceof Float) {
    if (Float.POSITIVE_INFINITY == ((Float)sourceObject)) {
      return Constants.POSITIVE_INFINITY;
    }
    if (Float.NEGATIVE_INFINITY == ((Float)sourceObject)) {
      return Constants.NEGATIVE_INFINITY;
    }
    return ((Float)sourceObject).toString();
  }
  return super.convertObjectToString(sourceObject);
}