[
https://issues.apache.org/jira/browse/VELOCITY-542?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16622168#comment-16622168
]
Nate Chadwick commented on VELOCITY-542:
----------------------------------------
Hi Claude,
I agree that having to have space-1 is weird. I just don't think that changing
the language to remove hyphens is a correct fix for that specific problem.
There must be a valid pattern for the identifiers regex in the parser
definition that can exclude the dash0-9 pattern from the end of an identifier.
Need a little time to research that.
In terms of other issues. So far we have hit 6 general patterns of issues. We
mitigated several by adding a "precompiler" that replaces known broken patterns
in templates and macro files before they get passed to the engine. I don't know
how that could be translated into a contribution to the project at this time.
1. Hyphen in variables (required forked velocity jar - patterns to complex)
2. "#" "$" fail to parse (VELOCITY-896) (VELOCITY-897)
3. String.replaceAll("someregexwith$#")
4. velocityCount, velocityHasNext (understood this is documented and by design
but still had to be replaced)
5. Macro file or template that is 100% commented out (fails to parse)
6. Macro parameter handling seems to now require variable name to match macro
parameter name or value is not returned (we have a fix for this and a property
that we can definitely contribute if the behavior was intentional) need to
search velocity Jira to see if there is a known issue already for this or not.
These problems are compounded when they are in Velocity Macro files as the
Engine completely fails to initialize if ANY macro in any of the VM files
passed in as a library fails to parse. So essentially one "#" in a single
macro file will break all macro's and templates until it is replaced - the
optics of which are pretty bad to end users. This may be related to how we load
macro files. Still trying to sort that out.
Thanks,
-n
> minus sign in #set requires spaces to surround it
> -------------------------------------------------
>
> Key: VELOCITY-542
> URL: https://issues.apache.org/jira/browse/VELOCITY-542
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.5
> Reporter: Will Glass-Husain
> Assignee: Claude Brisson
> Priority: Minor
> Fix For: 2.0
>
>
> The following example:
> #set($thisCampNumber = 10)
> #set($nextCampNumber = $thisCampNumber+1)
> #set($previousCampNumber = $thisCampNumber-1)
> #set($previousCampNumberB = $thisCampNumber - 1)
> 1: $thisCampNumber<br>
> 2: $nextCampNumber<br>
> 3: $previousCampNumber<br>
> 4: $previousCampNumberB<br>
> produces this result
> 1: 10
> 2: 11
> 3: $previousCampNumber
> 4: 9
> Note that using a minus sign in a #set statement does not work if there are
> no spaces around it. (however, the same is not true for +).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]