Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-17128

Quoted label expression can result into throwing exception

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • core
    • None

      If user use quoted label expression which already exists, it will result in ClassCastException (whole exception is bellow). The result is that all on slave page no labels are shown and also no tied project are shown.

      2013-03-07 06:53:59,668 WARNING [hudson.ExpressionFactory2$JexlExpression] (Handling GET /hudson/computer/vmg36-ipv6-rhel6-x86_64/ : ajp-127.0.0.1-8009-51) Caught exception evaluating: it.tiedJobs. Reason: java.lang.reflect.InvocationTargetException
      java.lang.reflect.InvocationTargetException
              at sun.reflect.GeneratedMethodAccessor1632.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at org.apache.commons.jexl.util.PropertyExecutor.execute(PropertyExecutor.java:125)
              at org.apache.commons.jexl.util.introspection.UberspectImpl$VelGetterImpl.invoke(UberspectImpl.java:314)
              at org.apache.commons.jexl.parser.ASTArrayAccess.evaluateExpr(ASTArrayAccess.java:185)
              at org.apache.commons.jexl.parser.ASTIdentifier.execute(ASTIdentifier.java:75)
              at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
              at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
              at org.apache.commons.jexl.parser.ASTReferenceExpression.value(ASTReferenceExpression.java:51)
              at org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:80)
              at hudson.ExpressionFactory2$JexlExpression.evaluate(ExpressionFactory2.java:72)
              at org.apache.commons.jelly.tags.core.CoreTagLibrary$3.run(CoreTagLibrary.java:134)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
              at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
              at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
              at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:98)
              at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
              at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
              at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
              at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
              at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
              at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:119)
              at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
              at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:81)
              at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:63)
              at org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript(DefaultScriptInvoker.java:53)
              at org.kohsuke.stapler.jelly.JellyClassTearOff.serveIndexJelly(JellyClassTearOff.java:107)
              at org.kohsuke.stapler.jelly.JellyFacet.handleIndexRequest(JellyFacet.java:127)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:563)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
              at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)
              at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203)
              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.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
              at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
              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 org.jenkinsci.plugins.reverse_proxy_auth.ReverseProxySecurityRealm$1.doFilter(ReverseProxySecurityRealm.java:142)
              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.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
              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:235)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
              at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:442)
              at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
              at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
              at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
              at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
              at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.internalProcess(ActiveRequestResponseCacheValve.java:74)
              at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:47)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
              at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:436)
              at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:385)
              at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
              at java.lang.Thread.run(Thread.java:662)
      Caused by: java.lang.ClassCastException
      

          [JENKINS-17128] Quoted label expression can result into throwing exception

          vjuranek added a comment -

          vjuranek added a comment - proposed solution: https://github.com/jenkinsci/jenkins/pull/730

          Code changed in jenkins
          User: Vojtech Juranek
          Path:
          core/src/main/java/jenkins/model/Jenkins.java
          test/src/test/java/hudson/model/labels/LabelExpressionTest.java
          http://jenkins-ci.org/commit/jenkins/42734675f4825e4856f67945981ce44d2190dbd6
          Log:
          [FIXED JENKINS-17128] Unquote labels before processing

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Vojtech Juranek Path: core/src/main/java/jenkins/model/Jenkins.java test/src/test/java/hudson/model/labels/LabelExpressionTest.java http://jenkins-ci.org/commit/jenkins/42734675f4825e4856f67945981ce44d2190dbd6 Log: [FIXED JENKINS-17128] Unquote labels before processing

          Code changed in jenkins
          User: vjuranek
          Path:
          core/src/main/java/jenkins/model/Jenkins.java
          test/src/test/java/hudson/model/labels/LabelExpressionTest.java
          http://jenkins-ci.org/commit/jenkins/8ef261ef8d233a0a30384249f12945808c7f628b
          Log:
          Merge pull request #730 from vjuranek/label_cast_exception

          [FIXED JENKINS-17128] Unquote labels before processing

          Compare: https://github.com/jenkinsci/jenkins/compare/a689c472ab2b...8ef261ef8d23


          You received this message because you are subscribed to the Google Groups "Jenkins Commits" group.
          To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscribe@googlegroups.com.
          For more options, visit https://groups.google.com/groups/opt_out.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: vjuranek Path: core/src/main/java/jenkins/model/Jenkins.java test/src/test/java/hudson/model/labels/LabelExpressionTest.java http://jenkins-ci.org/commit/jenkins/8ef261ef8d233a0a30384249f12945808c7f628b Log: Merge pull request #730 from vjuranek/label_cast_exception [FIXED JENKINS-17128] Unquote labels before processing Compare: https://github.com/jenkinsci/jenkins/compare/a689c472ab2b...8ef261ef8d23 – You received this message because you are subscribed to the Google Groups "Jenkins Commits" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-commits+unsubscribe@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out .

          dogfood added a comment -

          Integrated in jenkins_main_trunk #2397
          [FIXED JENKINS-17128] Unquote labels before processing (Revision 42734675f4825e4856f67945981ce44d2190dbd6)

          Result = SUCCESS
          Vojtech Juranek : 42734675f4825e4856f67945981ce44d2190dbd6
          Files :

          • core/src/main/java/jenkins/model/Jenkins.java
          • test/src/test/java/hudson/model/labels/LabelExpressionTest.java

          dogfood added a comment - Integrated in jenkins_main_trunk #2397 [FIXED JENKINS-17128] Unquote labels before processing (Revision 42734675f4825e4856f67945981ce44d2190dbd6) Result = SUCCESS Vojtech Juranek : 42734675f4825e4856f67945981ce44d2190dbd6 Files : core/src/main/java/jenkins/model/Jenkins.java test/src/test/java/hudson/model/labels/LabelExpressionTest.java

          Daniel Beck added a comment -

          This fix seems to have caused JENKINS-17587.

          Daniel Beck added a comment - This fix seems to have caused JENKINS-17587 .

            vjuranek vjuranek
            vjuranek vjuranek
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: