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

JellyTagException: Unmatched braces in the pattern

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Blocker Blocker
    • core
    • None

      I've just noticed the following error, might have been active for some time now. No local changes to Jenkins program/jar files have been made on the server.

      I can access hudson just fine from the server itself with links (both proxied through nginx and directly via "links 127.0.0.1:10080/hudson")

      Changes made to Jenkins default configuration
      petar@sumadija:/etc/default$ diff -u jenkins.dpkg-dist jenkins
      --- jenkins.dpkg-dist   2012-03-20 00:07:20.000000000 +0100
      +++ jenkins     2012-04-02 23:33:00.043500998 +0200
      @@ -38,7 +38,7 @@
       MAXOPENFILES=8192
      
       # port for HTTP connector (default 8080; disable with -1)
      -HTTP_PORT=8080
      +HTTP_PORT=10080
      
       # port for AJP connector (disabled by default)
       AJP_PORT=-1
      @@ -51,4 +51,4 @@
       # --argumentsRealm.passwd.$ADMIN_USER=[password]
       # --argumentsRealm.$ADMIN_USER=admin
       # --webroot=~/.jenkins/war
      -JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"
      +JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --prefix=/hudson"
      
      Full stacktrace
      org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-1.447.2.jar!/hudson/model/View/sidepanel.jelly:41:75: <st:include> Unmatched braces in the pattern.
      	at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:716)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:282)
      	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:270)
      	at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
      	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:270)
      	at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
      	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.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.IncludeTag.doTag(IncludeTag.java:146)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	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:270)
      	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.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.kohsuke.stapler.jelly.CompressTag.doTag(CompressTag.java:44)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	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:560)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:656)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:622)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:656)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:485)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:159)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
      	at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
      	at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:65)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:52)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:157)
      	at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:131)
      	at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:82)
      	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:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
      	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      	at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      	at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      	at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
      	at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
      	at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      	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)
      Caused by: java.lang.IllegalArgumentException: Unmatched braces in the pattern.
      	at java.text.MessageFormat.applyPattern(MessageFormat.java:493)
      	at java.text.MessageFormat.<init>(MessageFormat.java:367)
      	at java.text.MessageFormat.format(MessageFormat.java:828)
      	at org.kohsuke.stapler.jelly.ResourceBundle.format(ResourceBundle.java:74)
      	at org.kohsuke.stapler.jelly.InternationalizedStringExpression.format(InternationalizedStringExpression.java:146)
      	at org.kohsuke.stapler.jelly.InternationalizedStringExpression.evaluate(InternationalizedStringExpression.java:137)
      	at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:58)
      	at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
      	at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:121)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:270)
      	... 88 more
      

          [JENKINS-14126] JellyTagException: Unmatched braces in the pattern

          Petar Maric added a comment -

          Using OpenJDK Runtime Environment 1.6.0_20-b20

          Petar Maric added a comment - Using OpenJDK Runtime Environment 1.6.0_20-b20

          Petar Maric added a comment -

          It works in Firefox but not Google Chrome? Both are at the latest versions.

          Petar Maric added a comment - It works in Firefox but not Google Chrome? Both are at the latest versions.

          Petar Maric added a comment -

          And it's not working in MSIE 9 64bit as well.

          Petar Maric added a comment - And it's not working in MSIE 9 64bit as well.

          Hi Petar,
          I just installed 1.447.2 on fresh install of Ubuntu 10.04.4 and I don't see the issue. Also, I did check that the braces are matching in /hudson/model/View/sidepanel.jelly in repository as well as in the war distro.

          Last time it was updated 5 months ago.
          https://github.com/jenkinsci/jenkins/blob/master/core/src/main/resources/hudson/model/View/sidepanel.jelly

          Can you please re-install jenkins and check whether the error is gone? Also, can you please check jenkins.war size?

          Here's the size of jenkins.war I got installed:
          rw-rr- 1 root root 49136387 2012-06-11 11:29 jenkins.war

          Andrey

          Andrey Myatlyuk added a comment - Hi Petar, I just installed 1.447.2 on fresh install of Ubuntu 10.04.4 and I don't see the issue. Also, I did check that the braces are matching in /hudson/model/View/sidepanel.jelly in repository as well as in the war distro. Last time it was updated 5 months ago. https://github.com/jenkinsci/jenkins/blob/master/core/src/main/resources/hudson/model/View/sidepanel.jelly Can you please re-install jenkins and check whether the error is gone? Also, can you please check jenkins.war size? Here's the size of jenkins.war I got installed: rw-r r - 1 root root 49136387 2012-06-11 11:29 jenkins.war Andrey

          Andrey Myatlyuk added a comment - - edited

          typo

          Andrey Myatlyuk added a comment - - edited typo

          Petar Maric added a comment -

          Hi Andrey,

          I've been debugging this issue by examining and tweaking HTTP request headers. I've found that if the browsers preferred language is set to Serbian (sr) the same error is raised on all popular Jenkins installations. I've attached a small script to demonstrate this issue and here are the results:

          Checking if 'http://ci.petarmaric.com/' raises a JellyTagException:
                  Using 'en' language... ok
                  Using 'sr' language... EXCEPTION!
                  Using 'de' language... ok
          
          Checking if 'http://ci.jenkins-ci.org/' raises a JellyTagException:
                  Using 'en' language... ok
                  Using 'sr' language... EXCEPTION!
                  Using 'de' language... ok
          
          Checking if 'http://ci.djangoproject.com/' raises a JellyTagException:
                  Using 'en' language... ok
                  Using 'sr' language... EXCEPTION!
                  Using 'de' language... ok
          
          Checking if 'https://jenkins.shiningpanda.com/ipython/' raises a JellyTagException:
                  Using 'en' language... ok
                  Using 'sr' language... EXCEPTION!
                  Using 'de' language... ok
          

          After reviewing existing bug reports it seems danilo has found and reported the root cause behind this issue in JENKINS-13695, but his proposed fix is yet to be applied.

          Thanks,

          Petar Maric added a comment - Hi Andrey, I've been debugging this issue by examining and tweaking HTTP request headers. I've found that if the browsers preferred language is set to Serbian (sr) the same error is raised on all popular Jenkins installations. I've attached a small script to demonstrate this issue and here are the results: Checking if 'http://ci.petarmaric.com/' raises a JellyTagException: Using 'en' language... ok Using 'sr' language... EXCEPTION! Using 'de' language... ok Checking if 'http://ci.jenkins-ci.org/' raises a JellyTagException: Using 'en' language... ok Using 'sr' language... EXCEPTION! Using 'de' language... ok Checking if 'http://ci.djangoproject.com/' raises a JellyTagException: Using 'en' language... ok Using 'sr' language... EXCEPTION! Using 'de' language... ok Checking if 'https://jenkins.shiningpanda.com/ipython/' raises a JellyTagException: Using 'en' language... ok Using 'sr' language... EXCEPTION! Using 'de' language... ok After reviewing existing bug reports it seems danilo has found and reported the root cause behind this issue in JENKINS-13695 , but his proposed fix is yet to be applied. Thanks,

          Hi Petar,
          Very interesting. I'm glad that the cause was found. I will mark this ticket as duplicate and will look into JENKINS-13695, it seems that nobody was assigned to it yet.
          Andrey

          Andrey Myatlyuk added a comment - Hi Petar, Very interesting. I'm glad that the cause was found. I will mark this ticket as duplicate and will look into JENKINS-13695 , it seems that nobody was assigned to it yet. Andrey

            kukido Andrey Myatlyuk
            petar Petar Maric
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: