[
https://issues.apache.org/jira/browse/VELOCITY-537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609609#action_12609609
]
Nathan Bubna commented on VELOCITY-537:
---------------------------------------
Actually, i believe it's that the parser is errantly leaving in the *# token
when it directly precedes the #end
The start token and bodies of the multi-line comments never get to
tokenLiteral() or getASTAsStringArray() in my testing. Changing the tests for
537 and 580 to have text in the comments does not make any difference, either
with or without Marnix's patch. Really, i've tried most variations i can
think of. Marnix's patch does seem to fix them all. Though ideally, the
parser should eat the *# token along with the rest of the comment.
> Multi-line comments causing ParseException in macros in Velocity engine 1.5
> ---------------------------------------------------------------------------
>
> Key: VELOCITY-537
> URL: https://issues.apache.org/jira/browse/VELOCITY-537
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.5
> Reporter: Christopher Townson
> Fix For: 1.5.1
>
> Attachments: velocity-537.zip
>
>
> Moving from velocity engine 1.4 to 1.5, one of my macros is now causing a
> ParseException:
> #macro( makeLink $filepath )#*
> *##if ($request.serverName.equalsIgnoreCase("www.liveserver.com") ||
> $request.serverName.equalsIgnoreCase("liveserver.com"))#*
> *##set($mirrorDomain = "livemirror.com")#*
> *##elseif($request.serverName.equalsIgnoreCase("stagingserver.com"))#*
> *##set($mirrorDomain = "stagingmirror.com")#*
> *##elseif($request.serverName.equalsIgnoreCase("devserver.com") ||
> $request.serverName.equalsIgnoreCase("localhost"))#*
> *##set($mirrorDomain = "devmirror.com")#*
> *##else#*
> *##set($mirrorDomain = "liveserver.com")#*
> *##end#*
> *#http://${mirrorDomain}${filepath}#*
> *##end
> This macro uses the mutli-line comment hack to gobble whitespace (so that
> none appears in the link text, whilst preserving some kind of readability.
> This works fine in 1.4, but throws a ParseException in 1.5 (stacktrace below)
> -- stacktrace --
> 2007-04-03 16:05:38,712 - VelocimacroManager.parseTree() : exception makeLink
> org.apache.velocity.runtime.parser.ParseException: Lexical error:
> org.apache.velocity.runtime.parser.TokenMgrError: Lexical error at line 1,
> column 535. Encountered: <EOF> after : ""
> at org.apache.velocity.runtime.parser.Parser.parse(Parser.java:124)
> at
> org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1042)
> at
> org.apache.velocity.runtime.directive.VelocimacroProxy.parseTree(VelocimacroProxy.java:342)
> at
> org.apache.velocity.runtime.directive.VelocimacroProxy.setupMacro(VelocimacroProxy.java:322)
> at
> org.apache.velocity.runtime.directive.VelocimacroProxy.init(VelocimacroProxy.java:309)
> at
> org.apache.velocity.runtime.parser.node.ASTDirective.init(ASTDirective.java:134)
> at
> org.apache.velocity.runtime.parser.node.SimpleNode.init(SimpleNode.java:285)
> at org.apache.velocity.Template.initDocument(Template.java:199)
> at org.apache.velocity.Template.process(Template.java:121)
> at
> org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:415)
> at
> org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:335)
> at
> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1102)
> at
> org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1077)
> at
> org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:528)
> at
> org.apache.velocity.tools.view.servlet.VelocityViewServlet.getTemplate(VelocityViewServlet.java:667)
> at
> org.apache.velocity.tools.view.servlet.VelocityViewServlet.handleRequest(VelocityViewServlet.java:601)
> at
> org.apache.velocity.tools.view.servlet.VelocityViewServlet.doRequest(VelocityViewServlet.java:541)
> at
> org.apache.velocity.tools.view.servlet.VelocityViewServlet.doGet(VelocityViewServlet.java:507)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]