It appears that our XML parser (electricXML) is not fully conformant and does not correctly parse the utf-8 chars in some XML. Exception is:

      Could not read script string.
      Extra Information: [hide]
      Exception: java.io.IOException: expected '=', got 'v'
      java.io.PrintWriter@11bee48

      2004-06-26 01:29:13,230 ERROR [web.action.util.JellyRunner] Could not read scrip
      t string.
      java.io.IOException: expected '=', got 'v'
      at electric.util.lex.Lex.readChar(Lex.java:371)
      at electric.xml.sax.SAXParser.parseAttributes(SAXParser.java:685)
      at electric.xml.sax.SAXParser.parseElement(SAXParser.java:597)
      at electric.xml.sax.SAXParser.parse(SAXParser.java:330)
      at electric.xml.sax.SAXParser.parse(SAXParser.java:270)
      at electric.xml.sax.SAXParser.parse(SAXParser.java:241)
      at electric.xml.sax.SAXParser.parse(SAXParser.java:207)
      at org.apache.commons.jelly.parser.XMLParser.parse(XMLParser.java:283)
      at org.apache.commons.jelly.parser.XMLParser.parse(XMLParser.java:265)
      at com.atlassian.jira.web.action.util.JellyRunner.getJellyScript(JellyRu
      nner.java:135)
      at com.atlassian.jira.web.action.util.JellyRunner.doExecute(JellyRunner.
      java:84)
      at webwork.action.ActionSupport.execute(ActionSupport.java:151)
      at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport
      .java:49)
      at webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.
      java:131)
      at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraS
      ervletDispatcher.java:186)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilt
      er.java:129)
      at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilte
      r.java:61)
      at com.atlassian.jira.web.filters.SitemeshExcludePathFilter.doFilter(Sit
      emeshExcludePathFilter.java:36)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.ja
      va:164)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.atlassian.seraph.filter.LoginFilter.doFilter(LoginFilter.java:181
      )
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.atlassian.util.profiling.filters.ProfilingFilter.doFilter(Profili
      ngFilter.java:132)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.atlassian.jira.web.filters.ActionCleanupDelayFilter.doFilter(Acti
      onCleanupDelayFilter.java:37)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.atlassian.johnson.filters.JohnsonFilter.doFilter(JohnsonFilter.ja
      va:96)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.atlassian.jira.web.filters.gzip.GzipFilter.doFilter(GzipFilter.ja
      va:60)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at com.atlassian.core.filters.AbstractEncodingFilter.doFilter(AbstractEn
      codingFilter.java:38)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
      alve.java:256)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
      alve.java:191)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
      2417)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
      ava:180)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
      rValve.java:171)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
      ava:172)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
      ve.java:174)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:19
      3)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
      :781)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
      ssConnection(Http11Protocol.java:549)
      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
      :589)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
      ool.java:666)
      at java.lang.Thread.run(Thread.java:534)

        1. sf2jira.zip
          311 kB
          Jeff Turner

            [JRASERVER-3977] Jelly parser dies parsing wellformed UTF-8 XML files

            Making it ANSI makes it work in both Win and Linux. Suprised someone didn't try that.

            Deleted Account (Inactive) added a comment - Making it ANSI makes it work in both Win and Linux. Suprised someone didn't try that.

            I got the same with not converted to XML (") quota character in attribute value.
            Use converters before put text values inside text attributes (comment,description,full name, etc).

            Nikolai Derzhak added a comment - I got the same with not converted to XML (") quota character in attribute value. Use converters before put text values inside text attributes (comment,description,full name, etc).

            If this is still a problem - please create a new issue.

            Scott Farquhar added a comment - If this is still a problem - please create a new issue.

            The
            Exception: java.io.IOException: expected '=', got 'v'
            error is general when you are using a unix file on a windows system or visa versa. (Can't remember which)

            If you look at the file in vi then there is usually a strange character on the first line at the beinging if you remove this the file work fine.
            NOTE. view the file in notepad doesn't show the character.

            Owen Fellows added a comment - The Exception: java.io.IOException: expected '=', got 'v' error is general when you are using a unix file on a windows system or visa versa. (Can't remember which) If you look at the file in vi then there is usually a strange character on the first line at the beinging if you remove this the file work fine. NOTE. view the file in notepad doesn't show the character.

            From a user:

            Just a couple of notes:
            1) jelly should process utf-8 encoded files
            2) it should work if we prefix JiraJelly this way:

            <jira:JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib">

            This because if we use xslt as preprocessor we need to specify namespaces...

            3) if I paste more than 2/3 login (or if I specify a file - ANSI) I get:

            Jelly Runner
            As a security precaution, the Jelly Runner on this installation is currently
            disabled. To enable Jelly support, please start JIRA with
            "-Djira.jelly.on=true". For more information see the Jelly Documentation.

            That obviously is not, because with 1 item works!
            I think this is really bad because hides another error as a security
            problem.

            Jeff Turner added a comment - From a user: Just a couple of notes: 1) jelly should process utf-8 encoded files 2) it should work if we prefix JiraJelly this way: <jira:JiraJelly xmlns:jira="jelly:com.atlassian.jira.jelly.JiraTagLib"> This because if we use xslt as preprocessor we need to specify namespaces... 3) if I paste more than 2/3 login (or if I specify a file - ANSI) I get: Jelly Runner As a security precaution, the Jelly Runner on this installation is currently disabled. To enable Jelly support, please start JIRA with "-Djira.jelly.on=true". For more information see the Jelly Documentation. That obviously is not, because with 1 item works! I think this is really bad because hides another error as a security problem.

              Unassigned Unassigned
              7ee5c68a815f Jeff Turner
              Affected customers:
              0 This affects my team
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: