Hi,

My proposed solution is to simply have a boolean to know if we are writing
inside a CDATA section already or not. See patch in:

https://issues.apache.org/jira/browse/MYFACES-2836

And then we just check the value of this boolean to know if we have to open
a new CDATA section or not.

This is the problem with Primefaces. The differences about implementations
do not seem to be the cause, as I thought at the beginning of the
conversation. It is simply that we do not check when writing the body of a
script if a CDATA is already open,

Cheers,

Bruno

On 22 July 2010 16:47, Mark Struberg <[email protected]> wrote:

>
> But isn't the patch of Marcus Büttner doing this by maintaining a reference
> counter?
>
> Another question: how is the performance of all this scanning/dynamic
> replacement?
>
> LieGrue,
> strub
>
> >
> >From: Bruno Aranda <[email protected]>
> >To: MyFaces Development <[email protected]>
> >Sent: Thu, July 22, 2010 5:26:35 PM
> >Subject: Re: Fixing ResponseWriter.startCDATA/endCDATA
> >
> >Further investigation of this incompatibility problem with myfaces leads
> me to
> >the fact that in the HtmlResponseWriterImpl, when we write the content of
> a
> >script, we create a CDATA element without checking if is nested at all.
> That is
>
> >a problem, because if we use the standard response writer and we write a
> script
>
> >section inside a CDATA section, the problem will be triggered...
> >
> >We need a way in HtmlResponseWriterImpl to check nested CDATA calls to the
> >startCDATA or endCDATA methods I guess.
> >
> >Cheers,
> >
> >Bruno
> >
> >
> >On 22 July 2010 15:15, Bruno Aranda <[email protected]> wrote:
> >
> >Just clicked on sent and Werner had answered in the JIRA issue explaining
> the
> >partial approach...
> >>
> >>Cheers,
> >>
> >>Bruno
> >>
> >>
> >>
> >>On 22 July 2010 15:12, Bruno Aranda <[email protected]> wrote:
> >>
> >>As you can see in my black box tests with Mojarra, the behaviour is
> different in
> >>
> >>both implementations. In the base ResponseWriter class, they don't do
> anything
>
> >>in the startCDATA method and throw an undocumented exception in the
> endCDATA.
> >>
> >>>
> >>>In both implementations of the base class, they throw an exception if
> the
> >>>startCDATA method is called and it had been called already...
> >>>
> >>>I don't quite understand our implementation of the
> PartialResponseWriterImpl. We
> >>>
> >>>do buffer nested CDATAs and write them when closing the parent one? This
> would
> >
> >>>still create nested CDATAs... I still need to understand this bit
> properly,
> >>>
> >>>Cheers,
> >>>
> >>>Bruno
> >>>
> >>>
> >>>
> >>>On 22 July 2010 13:58, Bruno Aranda <[email protected]> wrote:
> >>>
> >>>yeah, sorry, my problem was running only the API tests :)
> >>>>
> >>>>Bruno
> >>>>
> >>>>
> >>>>
> >>>>On 22 July 2010 13:48, Matthias Wessendorf <[email protected]> wrote:
> >>>>
> >>>>On Thu, Jul 22, 2010 at 2:14 PM, Matthias Wessendorf <
> [email protected]>
> >>wrote:
> >>>>>> so, maybe there are now regressions?
> >>>>>>
> >>>>>> hrm. have you done some testing?
> >>>>>
> >>>>>Ah, the discussion is on the JIRA..
> >>>>>
> >>>>>please run tests, before committing ;-)
> >>>>>
> >>>>>
> >>>>>>
> >>>>>> -M
> >>>>>>
> >>>>>> On Thu, Jul 22, 2010 at 2:07 PM, Matthias Wessendorf <
> [email protected]>
> >>>>>wrote:
> >>>>>>> sounds right.
> >>>>>>>
> >>>>>>> does blame say more why it does not do nothing?
> >>>>>>>
> >>>>>>> It is also kinda strange since the TCK was successfully executed
> for
> >>>>>>> 2.0.0 and 2.0.1;
> >>>>>>>
> >>>>>>> -Matthias
> >>>>>>>
> >>>>>>> On Thu, Jul 22, 2010 at 1:48 PM, Bruno Aranda <
> [email protected]>
> >>>wrote:
> >>>>>>>> Hi,
> >>>>>>>>
> >>>>>>>> Having problems with Primefaces again I have realised that
> something
> was
> >>>>>>>> working with Mojarra, but not with MyFaces. Again, is the
> >>>>>>>> ResponseWriter.startCDATA stuff which Primefaces invokes directly
> on
> its
> >>>>>>>> main phase listener.
> >>>>>>>>
> >>>>>>>> However, reading the javadocs:
> >>>>>>>>
> >>>>>>>>
> https://javaserverfaces.dev.java.net/nonav/docs/2.0/javadocs/index.html
> >>>>>>>>
> >>>>>>>> It says that  method "should take no action when invoked"... which
> means
> >>>>>>>> that it should be completely empty as far as I understand. If that
> was
> >>the
> >>>>>>>> case, we would get the same behaviour in both implementations...
> >>>>>>>>
> >>>>>>>> Cheers,
> >>>>>>>>
> >>>>>>>> Bruno
> >>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> Matthias Wessendorf
> >>>>>>>
> >>>>>>> blog: http://matthiaswessendorf.wordpress.com/
> >>>>>>> sessions: http://www.slideshare.net/mwessendorf
> >>>>>>> twitter: http://twitter.com/mwessendorf
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Matthias Wessendorf
> >>>>>>
> >>>>>> blog: http://matthiaswessendorf.wordpress.com/
> >>>>>> sessions: http://www.slideshare.net/mwessendorf
> >>>>>> twitter: http://twitter.com/mwessendorf
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>--
> >>>>>
> >>>>>Matthias Wessendorf
> >>>>>
> >>>>>blog: http://matthiaswessendorf.wordpress.com/
> >>>>>sessions: http://www.slideshare.net/mwessendorf
> >>>>>twitter: http://twitter.com/mwessendorf
> >>>>>
> >>>>
> >>>
> >>
> >
>
>
>
>

Reply via email to