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 > >>>>> > >>>> > >>> > >> > > > > > >
