[ 
https://issues.apache.org/jira/browse/VELOCITY-919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16920422#comment-16920422
 ] 

Claude Brisson commented on VELOCITY-919:
-----------------------------------------

I could not reproduce the problem. I'm pretty sure that Velocity is not the 
culprit, because there is absolutely no reason for the unbreakable space to be 
handled differently than any other character.

> Velocity is removing the Zero-Width space from the text
> -------------------------------------------------------
>
>                 Key: VELOCITY-919
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-919
>             Project: Velocity
>          Issue Type: Bug
>          Components: Engine
>    Affects Versions: 2.1
>            Reporter: Rob van Dalen
>            Priority: Major
>
> I am not sure if this is a bug but we have the following situation.
> We have a recognition application of recognizing text and decorating the text.
> When we putting the below input text to the application:
>  *Input for the application:*
> {code:none}
> see ​art. 1​ of the WW and then some other text
> {code}
> _Just before the text *art. 1* there is a Zero-Width space._
> The application will make the text like this:
>  *Input for the VelocityEngine:*
> {code:none}
> see ​${annotationsMap[0]} and then some other text
> {code}
> _Just before the text *$\{annotationsMap[0]}* there still is a Zero-Width 
> space. because our application only changed *art.1 of the WW* into 
> *$\{annotationsMap[0]}*_
> When we put this text to the VelocityEngine together with the decoration 
> template and a list of laws in the context, the engine is changing my text. 
> It's removing the Zero-Width Space.
>  Just before the VelocityEngine is using the text and the template, 
> VelocityEngine is removing the Zer0-Width Space
> Velocity should only do some markup and not change the original input text.
> *decoration.vm:*
> {code:none}
> #foreach($type in $annotationsMap.keySet())
>     #foreach($citation in $annotationsMap.get($type))
>         <verwijzing>$citation</verwijzing>
>     #end
> #end
> {code}
> This is a pace of Java code:
> {code:java}
> VelocityEngine velocityEngine = new VelocityEngine();
> if (exists(pathName.resolve(GLOBAL_MACRO_FILENAME))) {
>     velocityEngine.setProperty(VM_LIBRARY, GLOBAL_MACRO_FILENAME);
> }
> velocityEngine.init();
> VelocityContext context = new VelocityContext();
> context.put("escape", new EscapeTool());
> // annotationsMap is put in context as a whole, so that template script can 
> descide what to do with different CitationTypes
> context.put("annotationsMap", annotationsMap);
> StringWriter writer = new StringWriter();
> velocityEngine.evaluate(context, writer, "decoration.vm", "see 
> ​${annotationsMap[0]} and then some other text");
> {code}
> The output of this application is:
> {code:html}
> see <verwijzing>art. 1​ of the WW</verwijzing> and then some other text
> {code}
> But just before *<verwijzing>* i expected the Zero-Width Space, but it's 
> gone. So somewhere in the methode evaluate of the VelocityEngine this 
> character is removed, because it's still present in the template text *"see 
> ​$\{annotationsMap[0]} and then some other text"*
> Please help. 



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org
For additional commands, e-mail: dev-h...@velocity.apache.org

Reply via email to