Skip to content

[JENKINS-32637] ReleaseWrapper should prevent parameter duplication when overrideBuildParameters is not set #127

Description

@jenkins-infra-bot

When overrideBuildParameters is not enabled, ReleaseWrapper does not attempt to filter default parameters that are also included in the Release configuration and blindly add new parameter regardless of whether a default parameter (from the regular job) has the same name, this results in release builds with confusing duplicated parameters

    if (isOverrideBuildParameters()) {
// if overrideBuildParameters is set, then build params are submitted
// within the list of release params -- no need to gather default values
paramValues = new ArrayList<ParameterValue>();
    }
    else {
//////////// lack of filtering in regards to getParameterDefinitions()
paramValues = getDefaultParametersValues();
    }
    
    if (getParameterDefinitions() != null && !getParameterDefinitions().isEmpty()
    || overrideBuildParameters &&  getBuildParameterDefinitions() != null && !getBuildParameterDefinitions().isEmpty()) {
	    JSONObject formData = req.getSubmittedForm();
	    
	    JSONArray a = JSONArray.fromObject(formData.get("parameter"));

	    for (Object o : a) {
	JSONObject jo = (JSONObject) o;
	String name = jo.getString("name");

	ParameterDefinition d = getParameterDefinition(name);
	if(d==null)
	    throw new IllegalArgumentException("No such parameter definition: " + name);
	
	ParameterValue value = d.createValue(req, jo);
	
	paramValues.add(d.createValue(req, jo));
	    }
    } else {


Originally reported by fchuong, imported from: ReleaseWrapper should prevent parameter duplication when overrideBuildParameters is not set
  • assignee: petehayes
  • status: Open
  • priority: Minor
  • component(s): release-plugin
  • resolution: Unresolved
  • votes: 0
  • watchers: 1
  • imported: 20251223-222157
Raw content of original issue

When overrideBuildParameters is not enabled, ReleaseWrapper does not attempt to filter default parameters that are also included in the Release configuration and blindly add new parameter regardless of whether a default parameter (from the regular job) has the same name, this results in release builds with confusing duplicated parameters

            if (isOverrideBuildParameters()) {
                // if overrideBuildParameters is set, then build params are submitted
                // within the list of release params -- no need to gather default values
                paramValues = new ArrayList<ParameterValue>();
            }
            else {
//////////// lack of filtering in regards to getParameterDefinitions()
                paramValues = getDefaultParametersValues();
            }
            
            if (getParameterDefinitions() != null && !getParameterDefinitions().isEmpty()
                    || overrideBuildParameters &&  getBuildParameterDefinitions() != null && !getBuildParameterDefinitions().isEmpty()) {
	            JSONObject formData = req.getSubmittedForm();
	            
	            JSONArray a = JSONArray.fromObject(formData.get("parameter"));

	            for (Object o : a) {
	                JSONObject jo = (JSONObject) o;
	                String name = jo.getString("name");

	                ParameterDefinition d = getParameterDefinition(name);
	                if(d==null)
	                    throw new IllegalArgumentException("No such parameter definition: " + name);
	                
	                ParameterValue value = d.createValue(req, jo);
	                
	                paramValues.add(d.createValue(req, jo));
	            }
            } else {
  • environment: Release plugin 2.5.4

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions