Issue Type: Improvement Improvement
Assignee: Unassigned
Components: core
Created: 05/Sep/12 7:36 PM
Description:

Steps to Reproduce:
1. Click "Manage Jenkins" -> Global Properties
2. Create an Environment Variable as follows: name: POLL_SCM_SCHEDULE value: 0 23,13,19 * * * (or any other value such as @hourly)
3. Select an Existing Job that uses either the "Build Periodically" or "Poll SCM" build triggers.
4. In the "Schedule" field enter

Result:
Validation Below Schedule Reads:

Invalid input: "${POLL_SCM_SCHEDULE}": line 1:1: unexpected char: '$'

When "Save" is clicked a status code 500 is returned with the following error:

Status Code: 500

Exception: java.lang.RuntimeException: Failed to instantiate class hudson.triggers.SCMTrigger from {"scmpoll_spec":"${POLL_SCM_SCHEDULE}"}
Stacktrace:
javax.servlet.ServletException: java.lang.RuntimeException: Failed to instantiate class hudson.triggers.SCMTrigger from {"scmpoll_spec":"${POLL_SCM_SCHEDULE}"}
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:616)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
	at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)
	at org.kohsuke.stapler.Stapler.service(Stapler.java:162)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.triggers.SCMTrigger from {"scmpoll_spec":"${POLL_SCM_SCHEDULE}"}
	at hudson.model.Descriptor.newInstance(Descriptor.java:575)
	at hudson.model.AbstractProject.buildDescribable(AbstractProject.java:1815)
	at hudson.model.AbstractProject.submit(AbstractProject.java:1794)
	at hudson.model.Project.submit(Project.java:197)
	at hudson.model.Job.doConfigSubmit(Job.java:991)
	at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:699)
	at sun.reflect.GeneratedMethodAccessor533.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
	... 56 more
Caused by: java.lang.IllegalArgumentException: Failed to instantiate class hudson.triggers.SCMTrigger from {"scmpoll_spec":"${POLL_SCM_SCHEDULE}"}
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:633)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:377)
	at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:373)
	at hudson.model.Descriptor.newInstance(Descriptor.java:566)
	... 70 more
Caused by: java.lang.IllegalArgumentException: antlr.ANTLRException: Invalid input: "${POLL_SCM_SCHEDULE}": line 1:1: unexpected char: '$'
	at org.kohsuke.stapler.RequestImpl.invokeConstructor(RequestImpl.java:439)
	at org.kohsuke.stapler.RequestImpl.access$300(RequestImpl.java:76)
	at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:631)
	... 73 more
Caused by: antlr.ANTLRException: Invalid input: "${POLL_SCM_SCHEDULE}": line 1:1: unexpected char: '$'
	at hudson.scheduler.CronTabList.create(CronTabList.java:87)
	at hudson.scheduler.CronTabList.create(CronTabList.java:73)
	at hudson.triggers.Trigger.<init>(Trigger.java:159)
	at hudson.triggers.SCMTrigger.<init>(SCMTrigger.java:78)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
	at org.kohsuke.stapler.RequestImpl.invokeConstructor(RequestImpl.java:424)
	... 75 more
Caused by: line 1:1: unexpected char: '$'
	at hudson.scheduler.CrontabLexer.nextToken(CrontabLexer.java:184)
	at antlr.TokenBuffer.fill(TokenBuffer.java:69)
	at antlr.TokenBuffer.LA(TokenBuffer.java:80)
	at antlr.LLkParser.LA(LLkParser.java:52)
	at hudson.scheduler.CrontabParser.startRule(CrontabParser.java:53)
	at hudson.scheduler.CronTab.set(CronTab.java:90)
	at hudson.scheduler.CronTab.<init>(CronTab.java:80)
	at hudson.scheduler.CronTabList.create(CronTabList.java:85)
	... 83 more

Generated by Stapler at Wed Sep 05 19:32:24 UTC 2012

If "Apply" is clicked a new window will appear reading "Error" although this window contains no text.

Use Case:
If a user wishes to have all jobs either Build Periodically or Poll SCM on a globally defined basis the user will be required to enter this data for each job and is also unable to update all jobs globally.

Environment: Jenkins Version: 1.480
Tomcat Version: 6.0.35
OS: Amazon Linux AMI 2012.03
Project: Jenkins
Priority: Trivial Trivial
Reporter: Colin Johnson
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to