Program: 118395
Project: 118395
Buggy source:
@Override public String storeProperties(ComponentProperties properties,String name,String repositoryLocation,String schemaPropertyName){
  if (properties == null) {
    throw new RuntimeException("String_Node_Str");
  }
  List<org.talend.daikon.properties.property.Property> propertyValues=ComponentsUtils.getAllValuedProperties(properties);
  for (  org.talend.daikon.properties.property.Property property : propertyValues) {
    property.setTaggedValue(IGenericConstants.REPOSITORY_VALUE,property.getName());
  }
  String serializedProperties=properties.toSerialized();
  if (repositoryLocation.contains(IGenericConstants.REPOSITORY_LOCATION_SEPARATOR)) {
    GenericConnectionItem item=getGenericConnectionItem(repositoryLocation.substring(0,repositoryLocation.indexOf(IGenericConstants.REPOSITORY_LOCATION_SEPARATOR)));
    if (item == null) {
      throw new RuntimeException("String_Node_Str" + repositoryLocation);
    }
    GenericConnection connection=(GenericConnection)item.getConnection();
    orgomg.cwm.objectmodel.core.Package parentContainer=null;
    if (repositoryLocation.endsWith(IGenericConstants.REPOSITORY_LOCATION_SEPARATOR)) {
      parentContainer=connection;
    }
 else {
      parentContainer=getContainer(connection,repositoryLocation);
    }
    ModelElement childElement=null;
    if (schemaPropertyName == null) {
      childElement=createContainer(name,serializedProperties);
    }
 else {
      childElement=SchemaUtils.createSchema(name,properties,schemaPropertyName);
    }
    parentContainer.getOwnedElement().add(childElement);
    return repositoryLocation + IGenericConstants.REPOSITORY_LOCATION_SEPARATOR + name;
  }
 else {
    GenericConnectionItem item=getGenericConnectionItem(repositoryLocation);
    if (item != null) {
      GenericConnection connection=(GenericConnection)item.getConnection();
      connection.setCompProperties(serializedProperties);
      connection.getOwnedElement().clear();
      return repositoryLocation + IGenericConstants.REPOSITORY_LOCATION_SEPARATOR;
    }
 else {
      throw new RuntimeException("String_Node_Str" + repositoryLocation);
    }
  }
}

Fixed version (ground truth):
@Override public String storeProperties(ComponentProperties properties,String name,String repositoryLocation,String schemaPropertyName){
  if (properties == null) {
    throw new RuntimeException("String_Node_Str");
  }
  List<org.talend.daikon.properties.property.Property> propertyValues=ComponentsUtils.getAllValuedProperties(properties);
  for (  org.talend.daikon.properties.property.Property property : propertyValues) {
    property.setTaggedValue(IGenericConstants.REPOSITORY_VALUE,property.getName());
  }
  String serializedProperties=properties.toSerialized();
  if (repositoryLocation.contains(IGenericConstants.REPOSITORY_LOCATION_SEPARATOR)) {
    GenericConnectionItem item=getGenericConnectionItem(repositoryLocation.substring(0,repositoryLocation.indexOf(IGenericConstants.REPOSITORY_LOCATION_SEPARATOR)));
    if (item == null) {
      throw new RuntimeException("String_Node_Str" + repositoryLocation);
    }
    GenericConnection connection=(GenericConnection)item.getConnection();
    orgomg.cwm.objectmodel.core.Package parentContainer=null;
    if (repositoryLocation.endsWith(IGenericConstants.REPOSITORY_LOCATION_SEPARATOR)) {
      parentContainer=connection;
    }
 else {
      parentContainer=getContainer(connection,repositoryLocation);
    }
    ModelElement childElement=null;
    if (schemaPropertyName == null) {
      childElement=createContainer(name,serializedProperties);
    }
 else {
      org.talend.daikon.properties.property.Property<?> schemaProperty=properties.getValuedProperty(schemaPropertyName);
      if (schemaProperty != null) {
        schemaProperty.setTaggedValue(IGenericConstants.REPOSITORY_VALUE,null);
      }
      childElement=SchemaUtils.createSchema(name,properties,schemaPropertyName);
    }
    parentContainer.getOwnedElement().add(childElement);
    return repositoryLocation + IGenericConstants.REPOSITORY_LOCATION_SEPARATOR + name;
  }
 else {
    GenericConnectionItem item=getGenericConnectionItem(repositoryLocation);
    if (item != null) {
      GenericConnection connection=(GenericConnection)item.getConnection();
      connection.setCompProperties(serializedProperties);
      connection.getOwnedElement().clear();
      return repositoryLocation + IGenericConstants.REPOSITORY_LOCATION_SEPARATOR;
    }
 else {
      throw new RuntimeException("String_Node_Str" + repositoryLocation);
    }
  }
}