Program: 118709
Project: 118709
Buggy source:
@SuppressWarnings("String_Node_Str") public void setMetadataTable(final IMetadataTable metadataTable){
  this.metadataTable=metadataTable;
  TalendFileFactory fileFact=TalendFileFactory.eINSTANCE;
  metadataType=fileFact.createMetadataType();
  IMetadataColumn metaCol;
  ColumnType colType;
  EList listColType;
  metadataType.setComment(metadataTable.getComment());
  metadataType.setName(metadataTable.getTableName());
  metadataType.setLabel(metadataTable.getLabel());
  metadataType.setConnector(metadataTable.getAttachedConnector());
  metadataType.setType(metadataTable.getTableType());
  listColType=metadataType.getColumn();
  if (metadataTable.getListColumns(true) != null) {
    for (int i=0; i < metadataTable.getListColumns(true).size(); i++) {
      metaCol=metadataTable.getListColumns(true).get(i);
      colType=fileFact.createColumnType();
      colType.setComment(metaCol.getComment());
      colType.setKey(metaCol.isKey());
      colType.setNullable(metaCol.isNullable());
      if (metaCol.getLength() == null || metaCol.getLength().intValue() < 0) {
        colType.setLength(-1);
      }
 else {
        colType.setLength(metaCol.getLength());
      }
      if (metaCol.getOriginalLength() != null) {
        colType.setOriginalLength(metaCol.getOriginalLength());
      }
      if (metaCol.getAdditionalField().size() > 0) {
        for (        String key : metaCol.getAdditionalField().keySet()) {
          colType.getAdditionalField().put(key,metaCol.getAdditionalField().get(key));
        }
      }
      colType.setName(metaCol.getLabel());
      if (metaCol.getPrecision() == null || metaCol.getPrecision().intValue() < 0) {
        colType.setPrecision(-1);
      }
 else {
        colType.setPrecision(metaCol.getPrecision());
      }
      if (!metaCol.getLabel().equals(metaCol.getOriginalDbColumnName())) {
        colType.setOriginalDbColumnName(metaCol.getOriginalDbColumnName());
      }
      colType.setType(metaCol.getTalendType());
      colType.setSourceType(metaCol.getType());
      colType.setPattern(metaCol.getPattern());
      colType.setDefaultValue(metaCol.getDefault());
      if (PluginChecker.isDatacertPluginLoaded()) {
        colType.setRelatedEntity(metaCol.getRelatedEntity());
        colType.setRelationshipType(metaCol.getRelationshipType());
      }
      colType.setUsefulColumn(metaCol.isUsefulColumn());
      listColType.add(colType);
    }
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public void setMetadataTable(final IMetadataTable metadataTable){
  this.metadataTable=metadataTable;
  TalendFileFactory fileFact=TalendFileFactory.eINSTANCE;
  metadataType=fileFact.createMetadataType();
  IMetadataColumn metaCol;
  ColumnType colType;
  EList listColType;
  metadataType.setComment(metadataTable.getComment());
  metadataType.setName(metadataTable.getTableName());
  metadataType.setLabel(metadataTable.getLabel());
  metadataType.setConnector(metadataTable.getAttachedConnector());
  metadataType.setType(metadataTable.getTableType());
  metadataType.getAdditionalProperties().putAll(metadataTable.getAdditionalProperties());
  listColType=metadataType.getColumn();
  if (metadataTable.getListColumns(true) != null) {
    for (int i=0; i < metadataTable.getListColumns(true).size(); i++) {
      metaCol=metadataTable.getListColumns(true).get(i);
      colType=fileFact.createColumnType();
      colType.setComment(metaCol.getComment());
      colType.setKey(metaCol.isKey());
      colType.setNullable(metaCol.isNullable());
      if (metaCol.getLength() == null || metaCol.getLength().intValue() < 0) {
        colType.setLength(-1);
      }
 else {
        colType.setLength(metaCol.getLength());
      }
      if (metaCol.getOriginalLength() != null) {
        colType.setOriginalLength(metaCol.getOriginalLength());
      }
      if (metaCol.getAdditionalField().size() > 0) {
        for (        String key : metaCol.getAdditionalField().keySet()) {
          colType.getAdditionalField().put(key,metaCol.getAdditionalField().get(key));
        }
      }
      colType.setName(metaCol.getLabel());
      if (metaCol.getPrecision() == null || metaCol.getPrecision().intValue() < 0) {
        colType.setPrecision(-1);
      }
 else {
        colType.setPrecision(metaCol.getPrecision());
      }
      if (!metaCol.getLabel().equals(metaCol.getOriginalDbColumnName())) {
        colType.setOriginalDbColumnName(metaCol.getOriginalDbColumnName());
      }
      colType.setType(metaCol.getTalendType());
      colType.setSourceType(metaCol.getType());
      colType.setPattern(metaCol.getPattern());
      colType.setDefaultValue(metaCol.getDefault());
      if (PluginChecker.isDatacertPluginLoaded()) {
        colType.setRelatedEntity(metaCol.getRelatedEntity());
        colType.setRelationshipType(metaCol.getRelationshipType());
      }
      colType.setUsefulColumn(metaCol.isUsefulColumn());
      listColType.add(colType);
    }
  }
}