Program: 125348
Project: 125348
Buggy source:
/** 
 * Build a field into a schema using enriched properties from the incoming column.
 */
private static FieldAssembler<Schema> convertToAvro(FieldAssembler<Schema> fa,org.talend.core.model.metadata.builder.connection.MetadataColumn in){
  FieldBuilder<Schema> fb=fa.name(in.getLabel());
  copyColumnProperties(fb,in);
  Object defaultValue=null;
  Expression initialValue=in.getInitialValue();
  if (initialValue != null) {
    defaultValue=initialValue.getBody();
  }
  String tt=in.getTalendType();
  Schema type=null;
  if (JavaTypesManager.LONG.getId().equals(tt)) {
    type=AvroUtils._long();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Long.parseLong(defaultValue.toString());
  }
 else   if (JavaTypesManager.INTEGER.getId().equals(tt)) {
    type=AvroUtils._int();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Integer.parseInt(defaultValue.toString());
  }
 else   if (JavaTypesManager.SHORT.getId().equals(tt)) {
    type=AvroUtils._short();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Integer.parseInt(defaultValue.toString());
  }
 else   if (JavaTypesManager.BYTE.getId().equals(tt)) {
    type=AvroUtils._byte();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Integer.parseInt(defaultValue.toString());
  }
 else   if (JavaTypesManager.DOUBLE.getId().equals(tt)) {
    type=AvroUtils._double();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Double.parseDouble(defaultValue.toString());
  }
 else   if (JavaTypesManager.FLOAT.getId().equals(tt)) {
    type=AvroUtils._float();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Float.parseFloat(defaultValue.toString());
  }
 else   if (JavaTypesManager.BIGDECIMAL.getId().equals(tt)) {
    type=AvroUtils._decimal();
  }
 else   if (JavaTypesManager.BOOLEAN.getId().equals(tt)) {
    type=AvroUtils._boolean();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Boolean.parseBoolean(defaultValue.toString());
  }
 else   if (JavaTypesManager.BYTE_ARRAY.getId().equals(tt)) {
    type=AvroUtils._bytes();
  }
 else   if (JavaTypesManager.DATE.getId().equals(tt)) {
    if (matchTag(in,DiSchemaConstants.TALEND6_COLUMN_DATE_DATE)) {
      type=AvroUtils._logicalDate();
    }
 else     if (matchTag(in,DiSchemaConstants.TALEND6_COLUMN_DATE_TIMESTAMP)) {
      type=AvroUtils._logicalTimestamp();
    }
 else {
      type=AvroUtils._date();
    }
  }
 else   if (JavaTypesManager.STRING.getId().equals(tt) || JavaTypesManager.FILE.getId().equals(tt) || JavaTypesManager.DIRECTORY.getId().equals(tt)|| JavaTypesManager.VALUE_LIST.getId().equals(tt)|| JavaTypesManager.CHARACTER.getId().equals(tt)|| JavaTypesManager.PASSWORD.getId().equals(tt)) {
    type=AvroUtils._string();
  }
  if ("String_Node_Str".equals(tt) || JavaTypesManager.OBJECT.getId().equals(tt)) {
    type=AvroUtils._string();
  }
  if (JavaTypesManager.LIST.getId().equals(tt)) {
  }
  if (type == null) {
    throw new UnsupportedOperationException("String_Node_Str" + tt);
  }
  type=in.isNullable() ? AvroUtils.wrapAsNullable(type) : type;
  return defaultValue == null ? fb.type(type).noDefault() : fb.type(type).withDefault(defaultValue);
}

Fixed version (ground truth):
/** 
 * Build a field into a schema using enriched properties from the incoming column.
 */
private static FieldAssembler<Schema> convertToAvro(FieldAssembler<Schema> fa,org.talend.core.model.metadata.builder.connection.MetadataColumn in){
  FieldBuilder<Schema> fb=fa.name(in.getLabel());
  copyColumnProperties(fb,in);
  Object defaultValue=null;
  Expression initialValue=in.getInitialValue();
  if (initialValue != null) {
    defaultValue=initialValue.getBody();
  }
  String tt=in.getTalendType();
  Schema type=null;
  if (JavaTypesManager.LONG.getId().equals(tt)) {
    type=AvroUtils._long();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Long.parseLong(defaultValue.toString());
  }
 else   if (JavaTypesManager.INTEGER.getId().equals(tt)) {
    type=AvroUtils._int();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Integer.parseInt(defaultValue.toString());
  }
 else   if (JavaTypesManager.SHORT.getId().equals(tt)) {
    type=AvroUtils._short();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Integer.parseInt(defaultValue.toString());
  }
 else   if (JavaTypesManager.BYTE.getId().equals(tt)) {
    type=AvroUtils._byte();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Integer.parseInt(defaultValue.toString());
  }
 else   if (JavaTypesManager.DOUBLE.getId().equals(tt)) {
    type=AvroUtils._double();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Double.parseDouble(defaultValue.toString());
  }
 else   if (JavaTypesManager.FLOAT.getId().equals(tt)) {
    type=AvroUtils._float();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Float.parseFloat(defaultValue.toString());
  }
 else   if (JavaTypesManager.BIGDECIMAL.getId().equals(tt)) {
    type=AvroUtils._decimal();
  }
 else   if (JavaTypesManager.BOOLEAN.getId().equals(tt)) {
    type=AvroUtils._boolean();
    defaultValue=StringUtils.isEmpty((String)defaultValue) ? null : Boolean.parseBoolean(defaultValue.toString());
  }
 else   if (JavaTypesManager.BYTE_ARRAY.getId().equals(tt)) {
    type=AvroUtils._bytes();
  }
 else   if (JavaTypesManager.DATE.getId().equals(tt)) {
    if (matchTag(in,DiSchemaConstants.TALEND6_COLUMN_DATE_DATE)) {
      type=AvroUtils._logicalDate();
    }
 else     if (matchTag(in,DiSchemaConstants.TALEND6_COLUMN_DATE_TIMESTAMP)) {
      type=AvroUtils._logicalTimestamp();
    }
 else {
      type=AvroUtils._date();
    }
  }
 else   if (JavaTypesManager.STRING.getId().equals(tt) || JavaTypesManager.FILE.getId().equals(tt) || JavaTypesManager.DIRECTORY.getId().equals(tt)|| JavaTypesManager.VALUE_LIST.getId().equals(tt)|| JavaTypesManager.CHARACTER.getId().equals(tt)|| JavaTypesManager.PASSWORD.getId().equals(tt)) {
    type=AvroUtils._string();
  }
  if ("String_Node_Str".equals(tt) || JavaTypesManager.OBJECT.getId().equals(tt)) {
    type=AvroUtils._string();
  }
  if (JavaTypesManager.LIST.getId().equals(tt)) {
  }
  Schema logicalTypeSchema=getLogicalTypeSchema(in);
  if (logicalTypeSchema != null) {
    type=logicalTypeSchema;
  }
  if (type == null) {
    throw new UnsupportedOperationException("String_Node_Str" + tt);
  }
  type=in.isNullable() ? AvroUtils.wrapAsNullable(type) : type;
  return defaultValue == null ? fb.type(type).noDefault() : fb.type(type).withDefault(defaultValue);
}