[ https://issues.apache.org/jira/browse/VELOCITY-919?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=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("## > <verwijzing>$citation</verwijzing>## > ")) > #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<String, List<String>> 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 <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 > $\{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