[ 
https://issues.jenkins-ci.org/browse/JENKINS-11945?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=161263#comment-161263
 ] 

Doug Borg commented on JENKINS-11945:
-------------------------------------

The other thing that is not clear about defining the filters is how you specify 
multiple filters. Are you supposed to put them all in one line in one big 
expression? Can they be whitespace separated, etc.? It might be good to allow 
multiple line entry and possibly have some configurable way to AND or OR the 
filters together.
                
> Invalid combination filter groovy script in matrix project build handled badly
> ------------------------------------------------------------------------------
>
>                 Key: JENKINS-11945
>                 URL: https://issues.jenkins-ci.org/browse/JENKINS-11945
>             Project: Jenkins
>          Issue Type: Bug
>          Components: matrix
>    Affects Versions: current
>         Environment: Jenkins 1.441 Ubuntu 10.04
>            Reporter: Richard Mortimer
>
> I inadvertantly set an invalid combination filter script for a Matrix based 
> job. When I clicked save on the configuration I got a 500 error code 
> informing me of the error but a back/reload seemed to show that the 
> configuration was ok (I assumed it had not been saved).
> At this stage I restarted jenkins and after the restart the Matrix job was no 
> longer listed in the Job list. The "Manage Jenkins" screen did have any 
> warnings of error in configuration. I was able to restore the job be manually 
> editing the config.xml and restarting Jenkins but this is clearly not ideal 
> behaviour.
> I don't have a minimal configuration file as an example but the configuration 
> is fairly simple.
> I had a user defined axis for  "screenres" with values WVGA, WXGA and WYGA. 
> The combination filter had a typo in the name of screen res and included  
> "(screemres=="WYGA")" not the 'm' instead lf 'n' in screenres,
> A failure to evaluate/parse the combination filter will likely need handling 
> gracefully in:
> * save/display of the configuration
> * load of configuration at startup time
> * build of a project with a broken combination filter.
> Initial configuration save 500 error stack trace below. Also included is the 
> configuration load error in the jenkins.log from the restart.
> {code}
> Status Code: 500
> Exception:
> Stacktrace:
> groovy.lang.MissingPropertyException: No such property: screemres for class: 
> Script1
>       at 
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
>       at Script1$_run_closure1.doCall(Script1.groovy:1)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
>       at Script1$_run_closure1.doCall(Script1.groovy)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:616)
>       at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>       at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>       at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
>       at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
>       at groovy.lang.Closure.call(Closure.java:410)
>       at groovy.lang.Closure.call(Closure.java:404)
>       at 
> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:106)
>       at 
> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$400(GroovyCategorySupport.java:64)
>       at 
> org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:246)
>       at 
> org.codehaus.groovy.runtime.DefaultGroovyMethods.use(DefaultGroovyMethods.java:359)
>       at org.codehaus.groovy.runtime.dgm$875.invoke(Unknown Source)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:308)
>       at 
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
>       at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
>       at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145)
>       at Script1.run(Script1.groovy:1)
>       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580)
>       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618)
>       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589)
>       at hudson.matrix.Combination.evalGroovyExpression(Combination.java:126)
>       at 
> hudson.matrix.MatrixProject.rebuildConfigurations(MatrixProject.java:397)
>       at hudson.matrix.MatrixProject.submit(MatrixProject.java:609)
>       at hudson.model.Job.doConfigSubmit(Job.java:977)
>       at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:643)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       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:282)
>       at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:149)
>       at 
> org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:88)
>       at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:104)
>       at 
> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
>       at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
>       at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
>       at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:234)
>       at 
> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
>       at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:561)
>       at org.kohsuke.stapler.Stapler.invoke(Stapler.java:646)
>       at org.kohsuke.stapler.Stapler.invoke(Stapler.java:477)
>       at org.kohsuke.stapler.Stapler.service(Stapler.java:159)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
>       at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
>       at winstone.RequestDispatcher.forward(RequestDispatcher.java:335)
>       at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:378)
>       at 
> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
>       at 
> net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:185)
>       at 
> net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:159)
>       at 
> net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:86)
>       at 
> org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:84)
>       at 
> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
>       at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
>       at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
>       at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
>       at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:78)
>       at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
>       at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
>       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:61)
>       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 winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
>       at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
>       at 
> hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
>       at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)
>       at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)
>       at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
>       at 
> winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
>       at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
>       at java.lang.Thread.run(Thread.java:636)
> {code}
> {code}
> SEVERE: Failed Loading job YYYYY
> groovy.lang.MissingPropertyException: No such property: screemres for class: 
> Script1
>         at 
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
>         at 
> org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
>         at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
>         at Script1$_run_closure1.doCall(Script1.groovy:1)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:616)
>         at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>         at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
>         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
>         at 
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
>         at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
>         at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
>         at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
>         at Script1$_run_closure1.doCall(Script1.groovy)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:616)
>         at 
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
>         at 
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
>         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
>         at groovy.lang.Closure.call(Closure.java:410)
>         at groovy.lang.Closure.call(Closure.java:404)
>         at 
> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:106)
>         at 
> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$400(GroovyCategorySupport.java:64)
>         at 
> org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:246)
>         at 
> org.codehaus.groovy.runtime.DefaultGroovyMethods.use(DefaultGroovyMethods.java:359)
>         at org.codehaus.groovy.runtime.dgm$875.invoke(Unknown Source)
>         at 
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:308)
>         at 
> org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
>         at 
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
>         at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
>         at 
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145)
>         at Script1.run(Script1.groovy:1)
>         at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580)
>         at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618)
>         at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589)
>         at 
> hudson.matrix.Combination.evalGroovyExpression(Combination.java:126)
>         at 
> hudson.matrix.MatrixProject.rebuildConfigurations(MatrixProject.java:397)
>         at hudson.matrix.MatrixProject.onLoad(MatrixProject.java:287)
>         at hudson.model.Items.load(Items.java:115)
>         at jenkins.model.Jenkins$14.run(Jenkins.java:2357)
>         at 
> org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:146)
>         at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
>         at jenkins.model.Jenkins$5.runTask(Jenkins.java:798)
>         at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
>         at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>         at java.lang.Thread.run(Thread.java:636)
> {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

        

Reply via email to