[prev in list] [next in list] [prev in thread] [next in thread] 

List:       velocity-dev
Subject:    [jira] Created: (VELOCITY-749) ReferenceInsertionEventHandler
From:       "Marco Rothe (JIRA)" <dev () velocity ! apache ! org>
Date:       2009-12-17 11:12:18
Message-ID: 1738425157.1261048338197.JavaMail.jira () brutus
[Download RAW message or body]

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 &amp; 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 &amp;amp; Co. Ltd *  

and not  * Me &amp; Co. Ltd * as output!

This is because the EscapeReference handler was called two times. First on the \
(internal) set directive (Me & Co. Ltd -> Me &amp; Co. Ltd), second on the real \
output of $test to the stream (* Me &amp; Co. Ltd *->  * Me &amp;amp; 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-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic