[jira] [Commented] (VELOCITY-919) Velocity is removing the Zero-Width space from the text

2019-09-02 Thread Sanford Whiteman (Jira)


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

Sanford Whiteman commented on VELOCITY-919:
---

Totally agree, was just saying the assertion in {{com.test.VelocityTestMain}} 
was guaranteed to fail for other reasons. (I was looking at that while you were 
confirming the actual bug!)

 

Comparing the _number_ of ZWSPs, for example, would've been a fairer (if overly 
coarse) comparison.

> 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
>Assignee: Claude Brisson
>Priority: Major
> Fix For: 2.2
>
> Attachments: TestVelocity.zip
>
>
> 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 ​${decorations[0]} and then some other text
> {code}
> _Just before the text *$\{decorations[0]}* there still is a Zero-Width space. 
> because our application only changed *art.1 of the WW* into 
> *$\{decorations[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}
> #set($decorations = [])
> #foreach($type in $annotationsMap.keySet())
> #foreach($citation in $annotationsMap.get($type))
> #set($hideAddResult = $decorations.add("##
> $citation##
> "))
> #end
> #end
> {code}
> This is a pace of Java code:
> {code:java}
> Path templateFile = TEMPLATE_FILE.toPath();
> VelocityEngine velocityEngine = new VelocityEngine();
> Path pathName = templateFile.getParent();
> velocityEngine.setProperty(FILE_RESOURCE_LOADER_PATH, 
> pathName.toFile().getAbsolutePath());
> velocityEngine.init();
> Map> annotationsMap = getAnnotationsMap();
> StringBuilder templateStringBuilder = new StringBuilder("see 
> \u200B${decorations[0]} and then some other text");
> templateStringBuilder.insert(0, "#parse(\"" + templateFile.getFileName() + 
> "\")");
> VelocityContext context = new VelocityContext();
> context.put("escape", new EscapeTool());
> // annotationsMap is put in context as a whole, so that template script can 
> decide what to do with different CitationTypes
> context.put("annotationsMap", annotationsMap);
> StringWriter writer = new StringWriter();
> velocityEngine.evaluate(context, writer, 
> templateFile.getFileName().toString(), templateStringBuilder.toString());
> {code}
> The output of this application is:
> {code:html}
> see art. 1​ of the WW and then some other text
> {code}
> But just before ** 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 
> ​$\{decorations[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



[jira] [Commented] (VELOCITY-919) Velocity is removing the Zero-Width space from the text

2019-09-02 Thread Claude Brisson (Jira)


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

Claude Brisson commented on VELOCITY-919:
-

Maybe. The testcase only needs to include a zero-width whitespace somewhere. 
See https://s.apache.org/gkhtz


> 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
>Assignee: Claude Brisson
>Priority: Major
> Fix For: 2.2
>
> Attachments: TestVelocity.zip
>
>
> 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 ​${decorations[0]} and then some other text
> {code}
> _Just before the text *$\{decorations[0]}* there still is a Zero-Width space. 
> because our application only changed *art.1 of the WW* into 
> *$\{decorations[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}
> #set($decorations = [])
> #foreach($type in $annotationsMap.keySet())
> #foreach($citation in $annotationsMap.get($type))
> #set($hideAddResult = $decorations.add("##
> $citation##
> "))
> #end
> #end
> {code}
> This is a pace of Java code:
> {code:java}
> Path templateFile = TEMPLATE_FILE.toPath();
> VelocityEngine velocityEngine = new VelocityEngine();
> Path pathName = templateFile.getParent();
> velocityEngine.setProperty(FILE_RESOURCE_LOADER_PATH, 
> pathName.toFile().getAbsolutePath());
> velocityEngine.init();
> Map> annotationsMap = getAnnotationsMap();
> StringBuilder templateStringBuilder = new StringBuilder("see 
> \u200B${decorations[0]} and then some other text");
> templateStringBuilder.insert(0, "#parse(\"" + templateFile.getFileName() + 
> "\")");
> VelocityContext context = new VelocityContext();
> context.put("escape", new EscapeTool());
> // annotationsMap is put in context as a whole, so that template script can 
> decide what to do with different CitationTypes
> context.put("annotationsMap", annotationsMap);
> StringWriter writer = new StringWriter();
> velocityEngine.evaluate(context, writer, 
> templateFile.getFileName().toString(), templateStringBuilder.toString());
> {code}
> The output of this application is:
> {code:html}
> see art. 1​ of the WW and then some other text
> {code}
> But just before ** 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 
> ​$\{decorations[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



[jira] [Commented] (VELOCITY-919) Velocity is removing the Zero-Width space from the text

2019-09-02 Thread Sanford Whiteman (Jira)


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

Sanford Whiteman commented on VELOCITY-919:
---

(OTOH, the original test case comparing VTL output to the expected String seems 
off, no? The {{decoration.vm}} contains extra whitespace, which would always 
make for different output.)

> 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
>Assignee: Claude Brisson
>Priority: Major
> Fix For: 2.2
>
> Attachments: TestVelocity.zip
>
>
> 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 ​${decorations[0]} and then some other text
> {code}
> _Just before the text *$\{decorations[0]}* there still is a Zero-Width space. 
> because our application only changed *art.1 of the WW* into 
> *$\{decorations[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}
> #set($decorations = [])
> #foreach($type in $annotationsMap.keySet())
> #foreach($citation in $annotationsMap.get($type))
> #set($hideAddResult = $decorations.add("##
> $citation##
> "))
> #end
> #end
> {code}
> This is a pace of Java code:
> {code:java}
> Path templateFile = TEMPLATE_FILE.toPath();
> VelocityEngine velocityEngine = new VelocityEngine();
> Path pathName = templateFile.getParent();
> velocityEngine.setProperty(FILE_RESOURCE_LOADER_PATH, 
> pathName.toFile().getAbsolutePath());
> velocityEngine.init();
> Map> annotationsMap = getAnnotationsMap();
> StringBuilder templateStringBuilder = new StringBuilder("see 
> \u200B${decorations[0]} and then some other text");
> templateStringBuilder.insert(0, "#parse(\"" + templateFile.getFileName() + 
> "\")");
> VelocityContext context = new VelocityContext();
> context.put("escape", new EscapeTool());
> // annotationsMap is put in context as a whole, so that template script can 
> decide what to do with different CitationTypes
> context.put("annotationsMap", annotationsMap);
> StringWriter writer = new StringWriter();
> velocityEngine.evaluate(context, writer, 
> templateFile.getFileName().toString(), templateStringBuilder.toString());
> {code}
> The output of this application is:
> {code:html}
> see art. 1​ of the WW and then some other text
> {code}
> But just before ** 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 
> ​$\{decorations[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



[jira] [Commented] (VELOCITY-919) Velocity is removing the Zero-Width space from the text

2019-09-02 Thread Claude Brisson (Jira)


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

Claude Brisson commented on VELOCITY-919:
-

I'm sorry I made a confusion between "unbreakable whitespace" and "zero-width 
whitespace" at first.

Yes, there was a problem, which is now fixed. The zero-width whitespace is used 
by Velocity to workaround a javacc limitation with regard to EOF handling. So 
the parser just needed to honor legitimate zero-width whitespace, which is now 
done in trunk.


> 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
> Attachments: TestVelocity.zip
>
>
> 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 ​${decorations[0]} and then some other text
> {code}
> _Just before the text *$\{decorations[0]}* there still is a Zero-Width space. 
> because our application only changed *art.1 of the WW* into 
> *$\{decorations[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}
> #set($decorations = [])
> #foreach($type in $annotationsMap.keySet())
> #foreach($citation in $annotationsMap.get($type))
> #set($hideAddResult = $decorations.add("##
> $citation##
> "))
> #end
> #end
> {code}
> This is a pace of Java code:
> {code:java}
> Path templateFile = TEMPLATE_FILE.toPath();
> VelocityEngine velocityEngine = new VelocityEngine();
> Path pathName = templateFile.getParent();
> velocityEngine.setProperty(FILE_RESOURCE_LOADER_PATH, 
> pathName.toFile().getAbsolutePath());
> velocityEngine.init();
> Map> annotationsMap = getAnnotationsMap();
> StringBuilder templateStringBuilder = new StringBuilder("see 
> \u200B${decorations[0]} and then some other text");
> templateStringBuilder.insert(0, "#parse(\"" + templateFile.getFileName() + 
> "\")");
> VelocityContext context = new VelocityContext();
> context.put("escape", new EscapeTool());
> // annotationsMap is put in context as a whole, so that template script can 
> decide what to do with different CitationTypes
> context.put("annotationsMap", annotationsMap);
> StringWriter writer = new StringWriter();
> velocityEngine.evaluate(context, writer, 
> templateFile.getFileName().toString(), templateStringBuilder.toString());
> {code}
> The output of this application is:
> {code:html}
> see art. 1​ of the WW and then some other text
> {code}
> But just before ** 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 
> ​$\{decorations[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



[jira] [Commented] (VELOCITY-919) Velocity is removing the Zero-Width space from the text

2019-09-02 Thread Rob van Dalen (Jira)


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

Rob van Dalen commented on VELOCITY-919:


Hi [~claude],

I have added an example application which contains the problem.

> 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
> Attachments: TestVelocity.zip
>
>
> 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 ​${decorations[0]} and then some other text
> {code}
> _Just before the text *$\{decorations[0]}* there still is a Zero-Width space. 
> because our application only changed *art.1 of the WW* into 
> *$\{decorations[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}
> #set($decorations = [])
> #foreach($type in $annotationsMap.keySet())
> #foreach($citation in $annotationsMap.get($type))
> #set($hideAddResult = $decorations.add("##
> $citation##
> "))
> #end
> #end
> {code}
> This is a pace of Java code:
> {code:java}
> Path templateFile = TEMPLATE_FILE.toPath();
> VelocityEngine velocityEngine = new VelocityEngine();
> Path pathName = templateFile.getParent();
> velocityEngine.setProperty(FILE_RESOURCE_LOADER_PATH, 
> pathName.toFile().getAbsolutePath());
> velocityEngine.init();
> Map> annotationsMap = getAnnotationsMap();
> StringBuilder templateStringBuilder = new StringBuilder("see 
> \u200B${decorations[0]} and then some other text");
> templateStringBuilder.insert(0, "#parse(\"" + templateFile.getFileName() + 
> "\")");
> VelocityContext context = new VelocityContext();
> context.put("escape", new EscapeTool());
> // annotationsMap is put in context as a whole, so that template script can 
> decide what to do with different CitationTypes
> context.put("annotationsMap", annotationsMap);
> StringWriter writer = new StringWriter();
> velocityEngine.evaluate(context, writer, 
> templateFile.getFileName().toString(), templateStringBuilder.toString());
> {code}
> The output of this application is:
> {code:html}
> see art. 1​ of the WW and then some other text
> {code}
> But just before ** 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 
> ​$\{decorations[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



[jira] [Commented] (VELOCITY-919) Velocity is removing the Zero-Width space from the text

2019-09-01 Thread Claude Brisson (Jira)


[ 
https://issues.apache.org/jira/browse/VELOCITY-919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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))
> $citation
> #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 art. 1​ of the WW and then some other text
> {code}
> But just before ** 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