[ https://issues.jenkins-ci.org/browse/JENKINS-12802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jørgen Tjernø updated JENKINS-12802: ------------------------------------ Assignee: (was: Jørgen Tjernø) Component/s: (was: jenkins-plugin-runtime) Removing the (poorly name) jenkins-plugin-runtime from the component list of this bug. Jenkins-plugin-runtime deals with plugins in Ruby etc, not Java. Sorry for the confusion! > Initial select box validation fails when default value is provided. > ------------------------------------------------------------------- > > Key: JENKINS-12802 > URL: https://issues.jenkins-ci.org/browse/JENKINS-12802 > Project: Jenkins > Issue Type: Bug > Components: plugin > Affects Versions: current > Environment: Jenkins version 1.451. > Jenkins run through mvn hpi:run. > See system info in attachment for further information. > Browser: Google Chrome 17 and Firefox 10 > Reporter: Ben Ripkens > Labels: jelly, jenkins, listbox, plugin > Attachments: systeminfo.pdf > > > When defining a select box like this: > {code:xml} > <f:entry title="Version Control System type" > field="vcs"> > <f:select/> > </f:entry> > {code} > and validating the value through a > {code:java} > int i = 0; > public FormValidation doCheckVcs(@QueryParameter String value) { > > System.out.println(i + ": value: " + value); > i++; > try { > VersionControlSystem.valueOf(value); > return FormValidation.ok(); > } catch (IllegalArgumentException ex) { > return FormValidation.error("Please select one of the Version Control > Systems."); > } > } > {code} > method, it can be observed that the validation method is called two times > when opening the configuration menu (http://localhost:8080/configure). The > first time, the correct default value, i.e., the selected item's value, is > passed to the validation method. The second time, no data is passed in (see > following code listing for output). > {code} > 0: value: MERCURIAL > 1: value: > {code} > The code is additionally available on GitHub: > Descriptor: > https://github.com/bripkens/janus-plugin/blob/389833439d11cc4daf5666c1ac7fb98ecad28471/src/main/java/de/codecentric/janus/plugin/Root.java > Jelly: > https://github.com/bripkens/janus-plugin/blob/389833439d11cc4daf5666c1ac7fb98ecad28471/src/main/resources/de/codecentric/janus/plugin/Root/global.jelly > Data is provided in the following way: > {code:java} > public ListBoxModel doFillVcsItems() { > ListBoxModel m = new ListBoxModel(); > m.add("Please select", ""); > for (VersionControlSystem vcs : VersionControlSystem.values()) { > if (this.vcs == vcs) { > m.add(new ListBoxModel.Option(vcs.name(), vcs.name(), > true)); > } else { > m.add(vcs.name()); > } > > } > return m; > } > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira