Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Jira plugin - Lexical error at line 1, column 2. Encountered: <EOF> after : ""

Greg Fischer
Contributor
June 11, 2021

Hi all,

 

We have written a couple of Jira plugins (we're on Jira 8.11.1) and are getting tons of these messages in the log when the plugins are enabled:

2021-06-11 08:27:15,001-0400 http-nio-2990-exec-3 ERROR - [c.atlassian.velocity.DefaultVelocityManager] Exception getting message body from Velocity: org.apache.velocity.exception.ParseErrorException: Lexical error: org.apache.velocity.runtime.parser.TokenMgrError: Lexical error at line 1, column 2. Encountered: <EOF> after : ""

org.apache.velocity.exception.ParseErrorException: Lexical error: org.apache.velocity.runtime.parser.TokenMgrError: Lexical error at line 1, column 2. Encountered: <EOF> after : ""

at org.apache.velocity.runtime.RuntimeInstance.evaluate(RuntimeInstance.java:1202)

...

 

We have been searching for the cause for two weeks now and haven't been able to locate what file (vm, js, css) that it is complaining about.  I downloaded a free VM parsing tool and it identified no errors in any of the .vm files.  I have tried enabling DEBUG logging on numerous classes listed in the stack trace but none of them will tell me which specific file, or even text (if I knew the text I can figure out the file) it is complaining about.  If I remove every single one of our js, css and png files from the plugin jar, we don't get the parsing error, we just get errors that the js files can't be found to be loaded - obviously expected.  But if I put back even ONE of the js files, or any of the png files, the error immediately comes back.  The plugin is being built using Maven and the resources are all being encoded with UTF-8.  I've even tried encoding the resources as ASCII and ISO-8559-1 with no luck.  Has anybody else run into this?  Any suggestions on how to narrow down exactly which of our files Velocity doesn't like?

1 answer

1 vote
Greg Fischer
Contributor
November 15, 2022

So after 17 months, I finally tracked this down.

 

Our Jira plugin defines a new menu with two sub-menus that we place in the system navigation bar.  And the top-most main menu was defined like this:

 

<!-- defines the link on the top-level section -->

               <web-item key="tempo_report_links_link" name="Tempo Reporting Top Navigation Menu" section="system.top.navigation.bar" weight="47">

                              <label>Tempo Reporting</label>

                              <link linkId="tempo_report_links_link">#</link>

               </web-item>

 

The documentation for web-item indicates that <link> is required and is parsed by Velocity.  And when Velocity parses that link, it finds just # - not #if or #foreach or #end, just #.  And that is an error according to Velocity.  So I fixed it with

<!-- defines the link on the top-level section -->

               <web-item key="tempo_report_links_link" name="Tempo Reporting Top Navigation Menu" section="system.top.navigation.bar" weight="47">

                              <label>Tempo Reporting</label>

                              <link linkId="tempo_report_links_link"></link>

               </web-item>

Heiko Gerlach April 24, 2025

Hi @Greg Fischer ,

you could use 

<link linkId="tempo_report_links_link">##</link> 

as well than it is seen as a comment.

Cheers

Heiko

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
SERVER
VERSION
8.11.1
TAGS
AUG Leaders

Atlassian Community Events