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

Marco Rothe commented on VELOCITY-749:
--------------------------------------

Hmm, I can't find anything about escaping references on the wiki! The current 
behaviour of the EscapeXmlReference handler is nearly useless if there is no 
way to distinct between internal and real output insertations. Did you know a 
way to do that with 'sophisticated filtering' ? I would like to see an example 
or get an hint.

> ReferenceInsertionEventHandler called "to often"/need more configuration 
> settings
> ---------------------------------------------------------------------------------
>
>                 Key: VELOCITY-749
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-749
>             Project: Velocity
>          Issue Type: Bug
>    Affects Versions: 1.6.2
>            Reporter: Marco Rothe
>            Priority: Minor
>             Fix For: 1.6.x, 1.7
>
>
> I use the EscapeXmlReference (ReferenceInsertionEventHandler implementation) 
> in our projects to produce valid XHTML.
> But I works not as expected in some situations:
> Given the reference $test as 'Me & Co. Ltd' (for example from context) will 
> output as 
> Me & Co. Ltd 
> correctly after the EscapeXmlReference.
> But if we enrich the $test reference with some other string before output 
> (#set($test = "* $test *")) we got 
> * Me & Co. Ltd *  
> and not  * Me & Co. Ltd * as output!
> This is because the EscapeReference handler was called two times. First on 
> the (internal) set directive (Me & Co. Ltd -> Me & Co. Ltd), second on 
> the real output of $test to the stream (* Me & Co. Ltd *->  * Me 
> & Co. Ltd *). 
> The javadoc of ReferenceInsertionEventHandler says "Reference 'Stream 
> insertion' event handler.  Called with object  that will be inserted into 
> stream via value.toString()." 
> "inserted  into stream" means to me  into the real output stream of the 
> template merge, not into internal substreams. So I believe it's a bug or a 
> least an unexpected behaviour because it produce unpredictable results on 
> string operations.
> So the ReferenceInsertionEventHandler needs the possibility to know if the 
> current insertation is an internal or an real output insertation to be able 
> to react on situations as descripted above.

-- 
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: dev-unsubscr...@velocity.apache.org
For additional commands, e-mail: dev-h...@velocity.apache.org

Reply via email to