Лексическая ошибка скорости при комментировании строки в конце файла - PullRequest
0 голосов
/ 08 октября 2011

У меня есть следующий шаблон Velocity в JIRA (обратите внимание, дополнительные строки сохраняются):

NOTE: Please REPLY-TO this email when replying to this issue.

##parse("templates/email/includes/issueplugins.vm")
#if($comment.getId())[ ${baseurl}/browse/${issue.getKey()} ] #end ##?page=${tabpanel-comment}&focusedCommentId=${comment.getId()}#action_${comment.getId()} ] #end


#if($remoteUser.fullName)
$i18n.getText("template.issue.commented.on", $remoteUser.fullName, $issue.getKey())
#dashes($!remoteUser.fullName)--------------#dashes($issue.getKey())-
#end
#if($changelog)

#changes([])
#end
#comment()
#visibility()

#parse("templates/email/text/includes/issuesummary.vm")

#parse("templates/email/text/includes/footer.vm")

За последней строкой нет ни одной строки. Когда я делаю это в самой последней строке:

##parse("templates/email/text/includes/footer.vm")

Я получаю следующую ошибку:

An error occurred whilst rendering this message.  Please contact the administrators, and inform them of this bug.

Details:
-------
org.apache.velocity.exception.ParseErrorException: Lexical error:
    org.apache.velocity.runtime.parser.TokenMgrError: 
        Lexical error at line 20, column 51.  Encountered: <EOF> after : ""
    at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:272)
    at org.apache.velocity.app.VelocityEngine.evaluate(VelocityEngine.java:202)
...

Я обнаружил следующую проблему с 2004 года:

https://issues.apache.org/jira/browse/VELOCITY-272

Похоже, это ошибка, исправленная в 1.5. Проверяя в своей Системной Информации JIRA, я вижу, что JIRA 4.2.1, кажется, предлагает версию 1.6 используется:

Плагин Atlassian Template Renderer Velocity 1.6 - 1.1.1

Когда я перемещаю строку, начинающуюся #if($comment.getId()) до конца, ошибка исчезает. Я что-то не так делаю в конце шаблона, или это ошибка?

EDIT

Хм. Когда я сделал это:

#if($comment.getId())[ ${baseurl}/browse/${issue.getKey()} ] #end ##?page=${tabpanel-comment}&focusedCommentId=${comment.getId()}#action_${comment.getId()} ] #end

Как и в последней строке, после которой нет пустой строки, я получил ту же ошибку. Однако, если я добавлю строку после этой строки (просто нажмите ENTER один раз), это сработает.

Требуется ли для шаблона Velocity конечный пробел? Я в замешательстве.

1 Ответ

1 голос
/ 12 октября 2011
~/tech/atlassian/atlassian-jira-4.4.1-standalone $ find . -name "*velocity*.jar"
./atlassian-jira/WEB-INF/lib/velocity-1.4-atlassian-9.jar
./atlassian-jira/WEB-INF/lib/velocity-tools-1.3.jar
./atlassian-jira/WEB-INF/lib/atlassian-velocity-0.8.jar

И нет, они не имеют;см. это обсуждение несколько дней назад ..

...