<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Tracking at:<br>
<a class="moz-txt-link-freetext" href="https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=874">https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=874</a><br>
<br>
-roger<br>
<br>
On 8/4/10 5:08 AM, Werner Punz wrote:
<blockquote
 cite="mid:AANLkTi=TeKOG2n_2UuAU0cVij9PSFnR-DsH0j05gqG5S@mail.gmail.com"
 type="cite">
  <meta http-equiv="Context-Type"
 content="text/html; charset=ISO-8859-1">
Hi,<br>
I just did some further digging around in the code specially since I am
currently doing some optimisation stuff in that area in myfaces. And I
came to the conclusion that Mojarras behavior breaks the spec.<br>
  <br>
The reason. The spec itself leaves it open, but we have an implicit
@this parameter which can be set both in execute and in render<br>
and if this @this parameter is set then the issuing client id has to be
set in the list where it is set.<br>
So the spec clearly states here that @this is a placeholder for the
executing element. If is allowed in exec, appending automatically the
issuing client id is pointless.<br>
  <br>
Werner<br>
  <br>
  <br>
  <div>On Wed, Aug 4, 2010 at 9:31 AM, Martin Marinschek <span>&lt;<a
 moz-do-not-send="true" href="mailto:mmarinschek@apache.org">mmarinschek@apache.org</a>&gt;</span>
wrote:<br>
  <blockquote>Hi Werner,<br>
    <br>
I think some clarification would certainly be good there (especially<br>
as the language doesn't really say what client identifiers should be<br>
present, plus once talks about client identifiers, and once about<br>
identifiers only). My POV: for now, Mojarra and MyFaces should behave<br>
the same. The sentence following the one that you highlighted in bold:<br>
    <br>
"...with the name javax.faces.partial.execute and the value as the<br>
identifier of the element that caused this request..."<br>
    <br>
indicates to me that the triggering client id should be there.<br>
    <br>
best regards,<br>
    <br>
Martin<br>
    <div>
    <div><br>
On 8/3/10, Werner Punz &lt;<a moz-do-not-send="true"
 href="mailto:werner.punz@gmail.com">werner.punz@gmail.com</a>&gt;
wrote:<br>
&gt; Hello while doing another round of testing and optimisations I
noticed a<br>
&gt; slight difference in the implementations of the request of mojarra
and<br>
&gt; myfaces which opened an area where the spec probably is unclear:<br>
&gt;<br>
&gt; Following case:<br>
&gt;<br>
&gt; &nbsp;&lt;h:panelGroup id="bla"&gt;<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;h:inputText id="inputbla"<br>
&gt; value="#{myBean2.searchTerm}" /&gt;<br>
&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;h:commandLink value="Press me for more
action"<br>
&gt; action="#{myBean2.doSearch}"&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;f:ajax execute="bla"
render="content"/&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/h:commandLink&gt;<br>
&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/h:panelGroup&gt;<br>
&gt;<br>
&gt; now results in following post data:<br>
&gt;<br>
&gt; Mojarra:<br>
&gt;<br>
&gt; form2 form2<br>
&gt; form2:inputbla<br>
&gt; javax.faces.ViewState 6697453697014869722:-1090088301633916042<br>
&gt; javax.faces.behavior.even... &nbsp;action<br>
&gt; javax.faces.partial.ajax &nbsp; &nbsp; &nbsp;true<br>
&gt; javax.faces.partial.event &nbsp; &nbsp; click<br>
&gt; javax.faces.partial.execu... &nbsp;form2:j_idt8 form2:bla<br>
&gt; javax.faces.partial.rende... &nbsp;form2:content<br>
&gt; javax.faces.source &nbsp; &nbsp;form2:j_idt8<br>
&gt;<br>
&gt;<br>
&gt; in myfaces<br>
&gt; form2:inputbla<br>
&gt; form2_SUBMIT &nbsp;1<br>
&gt; javax.faces.ViewState
EmWJgKYkJoTEWDCzpUwZQR3Ek94rGnxK1V6NEZgO6yDgPANeOc1wplJjDYezu2cx9aQ7ZSKNPyGY<br>
&gt; L8P9y5DwH2codFvGPjklD04wuxG4XXTPutNww3pdzIsMkw0=<br>
&gt; javax.faces.behavior.even... &nbsp;action<br>
&gt; javax.faces.partial.ajax &nbsp; &nbsp; &nbsp;true<br>
&gt; javax.faces.partial.event &nbsp; &nbsp; click<br>
&gt; javax.faces.partial.execu... &nbsp;form2:bla<br>
&gt; javax.faces.partial.rende... &nbsp;form2:content<br>
&gt; javax.faces.source &nbsp; &nbsp;form2:j_id1980473354_760ba132<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; While most of the differeing data is mostly implementation
specific and<br>
&gt; therefor it is not that interesting following is:<br>
&gt;<br>
&gt; javax.faces.partial.execu... &nbsp;form2:j_idt8 form2:bla<br>
&gt;<br>
&gt;<br>
&gt; compared to<br>
&gt;<br>
&gt; javax.faces.partial.execu... &nbsp;form2:bla<br>
&gt;<br>
&gt;<br>
&gt; Now the difference is that Mojarra adds the executing element as
it seems<br>
&gt; while MyFaces does not.<br>
&gt; The second interesting fact is following definition from the spec:<br>
&gt;<br>
&gt;<br>
&gt; &nbsp; &nbsp;- Determine additional arguments (if any) from the options
argument. If<br>
&gt; &nbsp; &nbsp;options.execute exists:<br>
&gt; &nbsp; &nbsp; &nbsp; - If the keyword @none is present, do not create and send
the post<br>
&gt; &nbsp; &nbsp; &nbsp; data argument javax.faces.partial.execute.<br>
&gt; &nbsp; &nbsp; &nbsp; - If the keyword @all is present, create the post data
argument with<br>
&gt; &nbsp; &nbsp; &nbsp; the name javax.faces.partial.execute and the value @all.<br>
&gt; &nbsp; &nbsp; &nbsp; - *Otherwise, there are specific identifiers that need to be
sent.<br>
&gt; &nbsp; &nbsp; &nbsp; Create the post data argument with the name<br>
&gt; &nbsp; &nbsp; &nbsp; javax.faces.partial.execute and the value as a space
delimited<br>
    </div>
    </div>
&gt; stringof client identifiers.<br>
    <div>&gt; &nbsp; &nbsp; &nbsp; *<br>
&gt; &nbsp; &nbsp;- If options.execute does not exist, create the post data
argument with<br>
&gt; &nbsp; &nbsp;the name javax.faces.partial.execute and the value as the
identifier of<br>
&gt; &nbsp; &nbsp;the element that caused this request.<br>
&gt;<br>
&gt;<br>
&gt; Which means exactly, that I am not sure which behavior is correct
and which<br>
&gt; not. My personal guess is that both implementations are<br>
&gt; correct because the spec clearly leaves it open if the issuing
element also<br>
&gt; can be added to the exec list unless no exec list is given at all.<br>
&gt; But that is merely an assumption on my side here.<br>
&gt; Any ideas on this.<br>
&gt;<br>
&gt; Werner<br>
&gt;<br>
    <br>
    <br>
    </div>
    <div>
    <div>--<br>
    <br>
    <a moz-do-not-send="true" href="http://www.irian.at">http://www.irian.at</a><br>
    <br>
Your JSF powerhouse -<br>
JSF Consulting, Development and<br>
Courses in English and German<br>
    <br>
Professional Support for Apache MyFaces<br>
    </div>
    </div>
  </blockquote>
  </div>
  <br>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-abbreviated" href="mailto:roger.kitain@oracle.com">roger.kitain@oracle.com</a>
<a class="moz-txt-link-freetext" href="https://twitter.com/rogerk09">https://twitter.com/rogerk09</a>
<a class="moz-txt-link-freetext" href="http://www.java.net/blogs/rogerk">http://www.java.net/blogs/rogerk</a>  

</pre>
</body>
</html>