Yeah Werner, you should take holidays seriously :) Thanks!

Bruno

On 23 July 2010 13:28, Werner Punz <[email protected]> wrote:

> Hi I have written a load of tests for the PPR responsewriter to have it
> covered, but I will do some additional testing mid next week (and will
> commit those tests) if the ppr responsewriter still behaves as it should
> after the patch.
> Since we are not in the middle of another release I can guess the
> additional testing on the ppr responsewriter can wait a little bit.
> If anything negative comes out I probably can fix it on the ppr writers
> side.
>
>
>
> Werner
>
>
> Am 23.07.10 13:05, schrieb Matthias Wessendorf:
>
>  re-tested; works fine with your patch as well
>>
>> On Fri, Jul 23, 2010 at 11:37 AM, Bruno Aranda<[email protected]>
>>  wrote:
>>
>>> Hi,
>>>
>>> But the patch had not been checked it yet? Or did you patch it before
>>> trying
>>> the tests?
>>>
>>> In any case, I have committed it just now, all myfaces tests pass.
>>>
>>> Cheers!
>>>
>>> Bruno
>>>
>>> On 23 July 2010 08:26, Matthias Wessendorf<[email protected]>  wrote:
>>>
>>>>
>>>> I just tested 2.0.2-SNAPSHOT with our internal version of ADF Faces,
>>>> that runs on JSF2.
>>>>
>>>> My jetty powered environment gives me no errors with our latest trunk...
>>>>
>>>> -Matthias
>>>>
>>>> On Thu, Jul 22, 2010 at 9:36 PM, Werner Punz<[email protected]>
>>>> wrote:
>>>>
>>>>> Btw. one issue about this, check if your fix does not break anything in
>>>>> the
>>>>> ppr case.
>>>>> The problem is that the ppr responseWriter simply delegates the
>>>>> HtmlResponseWriterImpl, but the issue is
>>>>> that CDATA blocks are automatically opened before any html is rendered,
>>>>> any
>>>>> valid CDATA block inside should not be swallowed but escaped in that
>>>>> case.
>>>>>
>>>>>
>>>>> So a ppr response looks like this
>>>>>
>>>>> <changes>
>>>>>  <update id="bla"><![CDATA[<div id="bla">  ....</div>  ]]></update>
>>>>>
>>>>> The problem is that per spec definition the xhr response must be xml
>>>>> and any html must be embedded within CDATA blocks, now if there is
>>>>> another
>>>>> CDATA block within the valid html it must be preserved at all costs
>>>>> because
>>>>> it is vital that it is properly rendered at the ppr update time (hence
>>>>> the
>>>>> complicated escaping in my code)
>>>>>
>>>>> Werner
>>>>>
>>>>>
>>>>> Am 22.07.10 21:31, schrieb Werner Punz:
>>>>>
>>>>>>
>>>>>> Ok point taken, yes the HTMLResponseWriterImpl definitely is html so a
>>>>>> fix there is valid.
>>>>>>
>>>>>>
>>>>>> Werner
>>>>>>
>>>>>>
>>>>>> Am 22.07.10 20:11, schrieb Bruno Aranda:
>>>>>>
>>>>>>>
>>>>>>> But we are talking about the HtmlResponseWriterImpl, which outputs
>>>>>>> HTML.
>>>>>>> The fix I have done is in that class and it only checks if there is a
>>>>>>> CDATA already started before starting one when writing the scripts.
>>>>>>> It
>>>>>>> is slightly different to the original problem (about the
>>>>>>> HtmlResponse,
>>>>>>> which is different from the one in Mojarra). The fix simply checks if
>>>>>>> there is the CDATA around the script before opening another one
>>>>>>> inside
>>>>>>> the script. I think it is OK if we just do not nest CDATAs in the
>>>>>>> HTML
>>>>>>> response, even if it was allowed.
>>>>>>>
>>>>>>> And this fixes the problems with PrimeFaces too, without having to
>>>>>>> change the ResponseWriter or the PartialResponseWriterImpl...
>>>>>>>
>>>>>>> Bruno
>>>>>>>
>>>>>>> On 22 July 2010 16:59, Werner Punz<[email protected]
>>>>>>> <mailto:[email protected]>>  wrote:
>>>>>>>
>>>>>>> Hia guys please also read up on my jira response.
>>>>>>> The entire thing is not as easy as it seems, because there are
>>>>>>> various ways a cdata block can be opened, first you can do it via
>>>>>>> startCDATA secondly you can do it via a direct write.
>>>>>>>
>>>>>>> I did some kind of double buffering in case of a cdata block was
>>>>>>> opened and then escaped the ]]>  as multiple cdata blocks (the jira
>>>>>>> response explains the technique exactly)
>>>>>>>
>>>>>>> And yes there is somewhat a speed hit because of this, but in case
>>>>>>> of the partial response writer I did not have a chance because:
>>>>>>>
>>>>>>> But the partial response writer is somewhat different, because it
>>>>>>> has to press html code in a valid xml response format, so nested
>>>>>>> cdata blocks can occur naturally, the normal response writer is
>>>>>>> somewhat different because nested cdata blocks are only forbidden
>>>>>>> for xmlish output dialects others might allow it.
>>>>>>>
>>>>>>> Werner
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Am 22.07.10 17:47, schrieb Mark Struberg:
>>>>>>>
>>>>>>>
>>>>>>> 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]
>>>>>>> <mailto:[email protected]>>
>>>>>>> To: MyFaces Development<[email protected]
>>>>>>> <mailto:[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]
>>>>>>> <mailto:[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]
>>>>>>> <mailto:[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]
>>>>>>> <mailto:[email protected]>>  wrote:
>>>>>>>
>>>>>>> yeah, sorry, my problem was running only the API
>>>>>>> tests :)
>>>>>>>
>>>>>>>
>>>>>>> Bruno
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 22 July 2010 13:48, Matthias
>>>>>>> Wessendorf<[email protected]
>>>>>>> <mailto:[email protected]>>  wrote:
>>>>>>>
>>>>>>> On Thu, Jul 22, 2010 at 2:14 PM, Matthias
>>>>>>> Wessendorf<[email protected]
>>>>>>> <mailto:[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]
>>>>>>> <mailto:[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]
>>>>>>> <mailto:[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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Matthias Wessendorf
>>>>
>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>> sessions: http://www.slideshare.net/mwessendorf
>>>> twitter: http://twitter.com/mwessendorf
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>

Reply via email to