Re: Client-id : _id0 is duplicated in the faces tree.

2007-03-01 Thread Ryan Wynn


Darn, I thought we had this one covered for all the releases but I must not 
have tested again with myfaces 1.1. There is some history with this issue.


Gary, do you know if this bug is limited to a myfaces 1.1.1/ clay
1.0.4 combination.

myfaces 1.1.1 + clay 1.0.3 does not seem to exhibit this bug for me.

Ryan


RE: Client-id : _id0 is duplicated in the faces tree.

2007-03-01 Thread Gary VanMatre
From: Richard Eggert [EMAIL PROTECTED] 

 Thanks for the explanation! I've reported it as SHALE-418. 
 
 Is there a workaround, or do I just have to wait until I'm able to upgrade to 
 MyFaces 1.1.4 (which won't be until late next week at the earliest)? 
 

Unfortunately, I can't think of a workaround other than using clay 1.0.3.

http://shale.apache.org/docs/release-notes-1.0.3.html


http://shale.apache.org/docs/release-notes-1.0.4.html


I'll try to get to this one this weekend... 


 
 Rich Eggert 
 Member of Technical Staff 
 Proteus Technologies, LLC 
 http://www.proteus-technologies.com 
 
 

Gary


 
 -Original Message- 
 From: Gary VanMatre [mailto:[EMAIL PROTECTED] 
 Sent: Wed 2/28/2007 9:45 PM 
 To: user@shale.apache.org 
 Subject: Re: Client-id : _id0 is duplicated in the faces tree. 
 
 From: Richard Eggert 
  
  I'm running into a problem using Xml views using HTML templates. Loading 
  a 
  page initially works fine, but if I reload the page either by clicking on a 
 link 
  or hitting Refresh, I get the following error. 
  
  
  java.lang.IllegalStateException: Client-id : _id0 is duplicated in the 
  faces 
  tree. 
  at 
  
 org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspS
  
  tateManagerImpl.java:241) 
  at 
  
 org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspS
  
  tateManagerImpl.java:255) 
  (the above line is repeated several times) 
  at 
  
 org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(JspSt
  
  ateManagerImpl.java:204) 
  at 
  
 org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:418)
  
  ... 
  
  The error goes away if I load the page again, and then comes back if I load 
 the 
  page again after that. 
  
  I created a very simple test page to reproduce the problem: 
  
  bugTest.html 
  --- 
  
  
  
  
  
  
  
  
  
  
  foo 
  
  
  
  
  
  
  clay-views.xml (excerpt) 
   
  
  
  
  
  
  
  
  (web.xml maps *.clay to the Faces servlet and the Shale application filter) 
  
  I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a bug 
  in 
  Clay, or if I'm doing something wrong, but I've never seen this problem 
  before 
  with my other (non-Clay-based) pages. Any ideas? 
  
 
 
 Darn, I thought we had this one covered for all the releases but I must not 
 have 
 tested again with myfaces 1.1. There is some history with this issue. 
 
 
 This has to do with how the view root generates component ids. For components 
 that you don't explicitly assign a component id, there is a utility function 
 on 
 the view root to generate a unique Id. In the first versions of Myfaces and 
 the 
 RI, the internal sequence that generates the ids was always reset even after 
 the 
 view was restored. 
 
 
 This is a significant because of components marked transient. Transient 
 components do not save state in the view. The verbatim component is actual 
 an 
 outputText with the transient property tunned on. When the view is restored, 
 we 
 have to recreate transient components and these components will need 
 generated 
 component id's since this is just text. In the early version of clay, after 
 the 
 view was restored, we would generate, in sequence, component ids for all 
 components including components that were restored because this counter was 
 always reset. A clay html template contains allot of transient components 
 because the entire template is defined using components (Thanks again to 
 Manfred 
 Klug who helped figure this all out). Interesting enough, making all the view 
 represented by components is the same approach they took in JSF 1.2. 
 
 
 The EG team determined that reseting the counter was a bug. The view root 
 should restore the internal counter. Starting with version 1.1.2, myfaces 
 changed the view roots to restore the counter. 
 
 
 Clay Release 1.0.3 
 http://issues.apache.org/struts/browse/SHALE-195 
 
 
 The counter being reset made PPR or any changes to a restored component tree 
 problematic. So, in JSF 1.2 they changed how component id's are generated. 
 They 
 are now generated by the the container for JSP tags implementing 
 JspidConsumer 
 (JSP 2.1). The JspidConsumer will always return the same id for a component. 
 
 
 Most recently, changes were made in this area to allow Clay to work with JSF 
 1.2. 
 
 
 Clay Release 1.0.4 
 http://issues.apache.org/struts/browse/SHALE-67 
 
 
 I thought that I had this covered for all releases but it sounds like it's an 
 issue. Trying to play with all versions is challenge. I'd like to move the 
 trunk 
 to full JSF 1.2 support and leave the 1_0_X branch for JSF 1.1 flavors. There 
 are features in JSF 1.2 that we can not support until we commit to the new EL 
 API. 
 
 
 Please create a JIRA issue on this one. 
 
 
  
  Rich Eggert 
  Member of Technical Staff 
  Proteus Technologies, LLC 
  http://www.proteus

Re: Client-id : _id0 is duplicated in the faces tree.

2007-03-01 Thread Gary VanMatre
From: Ryan Wynn [EMAIL PROTECTED] 

  
  Darn, I thought we had this one covered for all the releases but I must not 
 have tested again with myfaces 1.1. There is some history with this issue. 
 
 Gary, do you know if this bug is limited to a myfaces 1.1.1/ clay 
 1.0.4 combination. 
 
 myfaces 1.1.1 + clay 1.0.3 does not seem to exhibit this bug for me. 
 

That sounds correct.  The recent changes, in Clay 1.0.4, to make it JSF 1.2 
friendly, caused the problem.


 Ryan

Gary 

RE: Client-id : _id0 is duplicated in the faces tree.

2007-03-01 Thread Gary VanMatre
From: Nikish Parikh [EMAIL PROTECTED] 

 In this case give explicit id or if you are generating component 
 dynamically then generated that id with some dynamic logic. 


That's how clay handles it [1].  The trick is detecting the version and flavor 
of JSF to address specific behavior.  The form state marker is also one of 
those things that fall outside of the specification [2]. 

[1] 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/component/chain/CreateComponentCommand.java?view=markup

[2] 
http://svn.apache.org/viewvc/shale/framework/trunk/shale-clay/src/main/java/org/apache/shale/clay/faces/ClayViewHandler.java?view=markup

 
 -Original Message- 
 From: Ryan Wynn [mailto:[EMAIL PROTECTED] 
 Sent: Thursday, March 01, 2007 7:18 PM 
 To: user@shale.apache.org 
 Subject: Re: Client-id : _id0 is duplicated in the faces tree. 
 
  
  Darn, I thought we had this one covered for all the releases but I 
 must not have tested again with myfaces 1.1. There is some history with 
 this issue. 
 
 Gary, do you know if this bug is limited to a myfaces 1.1.1/ clay 
 1.0.4 combination. 
 
 myfaces 1.1.1 + clay 1.0.3 does not seem to exhibit this bug for me. 
 
 Ryan 

Re: Client-id : _id0 is duplicated in the faces tree.

2007-03-01 Thread Mike Kienenberger

I believe that MyFaces 1.1.1 had duplicate id issues.   I know that
was the situation with facelets.   I'd recommend upgrading MyFaces
core.


On 3/1/07, Ryan Wynn [EMAIL PROTECTED] wrote:


 Darn, I thought we had this one covered for all the releases but I must not 
have tested again with myfaces 1.1. There is some history with this issue.

Gary, do you know if this bug is limited to a myfaces 1.1.1/ clay
1.0.4 combination.

myfaces 1.1.1 + clay 1.0.3 does not seem to exhibit this bug for me.

Ryan



SV: Client-id : _id0 is duplicated in the faces tree.

2007-03-01 Thread Hermod Opstvedt
Hi

Getting Tomahawk is easy - Either use Maven2 or download it from
www.ibiblio.org

Hermod


-Opprinnelig melding-
Fra: Richard Eggert [mailto:[EMAIL PROTECTED] 
Sendt: 1. mars 2007 17:20
Til: user@shale.apache.org
Emne: RE: Client-id : _id0 is duplicated in the faces tree.

Unfortunately, it would take me just as long to acquire Shale 1.0.3 as it
would for me to acquire MyFaces 1.1.4 (actually, I can get MyFaces 1.1.4
immediately; it's Tomahawk that poses the problem, since it is no longer
packaged with MyFaces, and upgrading MyFaces means I'd lose Tomahawk).

I guess I'll just have to suffer through not being able to reload pages
until I can upgrade. :(

Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com



-Original Message-
From: Gary VanMatre [mailto:[EMAIL PROTECTED]
Sent: Thu 3/1/2007 10:32 AM
To: user@shale.apache.org
Subject: RE: Client-id : _id0 is duplicated in the faces tree.
 
From: Richard Eggert [EMAIL PROTECTED] 

 Thanks for the explanation! I've reported it as SHALE-418. 
 
 Is there a workaround, or do I just have to wait until I'm able to upgrade
to 
 MyFaces 1.1.4 (which won't be until late next week at the earliest)? 
 

Unfortunately, I can't think of a workaround other than using clay 1.0.3.


http://shale.apache.org/docs/release-notes-1.0.3.html


http://shale.apache.org/docs/release-notes-1.0.4.html


I'll try to get to this one this weekend... 


 
 Rich Eggert 
 Member of Technical Staff 
 Proteus Technologies, LLC 
 http://www.proteus-technologies.com 
 
 

Gary


 
 -Original Message- 
 From: Gary VanMatre [mailto:[EMAIL PROTECTED] 
 Sent: Wed 2/28/2007 9:45 PM 
 To: user@shale.apache.org 
 Subject: Re: Client-id : _id0 is duplicated in the faces tree. 
 
 From: Richard Eggert 
  
  I'm running into a problem using Xml views using HTML templates.
Loading a 
  page initially works fine, but if I reload the page either by clicking
on a 
 link 
  or hitting Refresh, I get the following error. 
  
  
  java.lang.IllegalStateException: Client-id : _id0 is duplicated in the
faces 
  tree. 
  at 
  

org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspS 
  tateManagerImpl.java:241) 
  at 
  

org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspS 
  tateManagerImpl.java:255) 
  (the above line is repeated several times) 
  at 
  

org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(J
spSt 
  ateManagerImpl.java:204) 
  at 
  

org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:
418) 
  ... 
  
  The error goes away if I load the page again, and then comes back if I
load 
 the 
  page again after that. 
  
  I created a very simple test page to reproduce the problem: 
  
  bugTest.html 
  --- 
  
  
  
  
  
  
  
  
  
  
  foo 
  
  
  
  
  
  
  clay-views.xml (excerpt) 
   
  
  
  
  
  
  
  
  (web.xml maps *.clay to the Faces servlet and the Shale application
filter) 
  
  I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a
bug in 
  Clay, or if I'm doing something wrong, but I've never seen this problem
before 
  with my other (non-Clay-based) pages. Any ideas? 
  
 
 
 Darn, I thought we had this one covered for all the releases but I must
not have 
 tested again with myfaces 1.1. There is some history with this issue. 
 
 
 This has to do with how the view root generates component ids. For
components 
 that you don't explicitly assign a component id, there is a utility
function on 
 the view root to generate a unique Id. In the first versions of Myfaces
and the 
 RI, the internal sequence that generates the ids was always reset even
after the 
 view was restored. 
 
 
 This is a significant because of components marked transient. Transient 
 components do not save state in the view. The verbatim component is
actual an 
 outputText with the transient property tunned on. When the view is
restored, we 
 have to recreate transient components and these components will need
generated 
 component id's since this is just text. In the early version of clay,
after the 
 view was restored, we would generate, in sequence, component ids for all 
 components including components that were restored because this counter
was 
 always reset. A clay html template contains allot of transient components 
 because the entire template is defined using components (Thanks again to
Manfred 
 Klug who helped figure this all out). Interesting enough, making all the
view 
 represented by components is the same approach they took in JSF 1.2. 
 
 
 The EG team determined that reseting the counter was a bug. The view
root 
 should restore the internal counter. Starting with version 1.1.2, myfaces 
 changed the view roots to restore the counter. 
 
 
 Clay Release 1.0.3 
 http://issues.apache.org/struts/browse/SHALE-195 
 
 
 The counter being reset made PPR or any changes

Client-id : _id0 is duplicated in the faces tree.

2007-02-28 Thread Richard Eggert
I'm running into a problem using Xml views using HTML templates.  Loading a 
page initially works fine, but if I reload the page either by clicking on a 
link or hitting Refresh, I get the following error.


java.lang.IllegalStateException: Client-id : _id0 is duplicated in the faces 
tree.
   at 
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:241)
   at 
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspStateManagerImpl.java:255)
(the above line is repeated several times)
   at 
org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(JspStateManagerImpl.java:204)
   at 
org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:418)
...

The error goes away if I load the page again, and then comes back if I load the 
page again after that.

I created a very simple test page to reproduce the problem:

bugTest.html
---
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Strict//EN
html
   head
  titleTesting/title
  meta http-equiv=Content-Type content=text/html;charset=UTF-8 /
  meta http-equiv=pragma content=no-cache
  meta http-equiv=cache-control content=no-cache
  meta http-equiv=expires content=0
   /head
   body
  foo
   /body
/html


clay-views.xml  (excerpt)

component jsfid=/bugTest.clay extends=clay
   attributes
  set name=clayJsfid value=/path/to/bugTest.html /
   /attributes
/component


(web.xml maps *.clay to the Faces servlet and the Shale application filter)

I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a bug in 
Clay, or if I'm doing something wrong, but I've never seen this problem before 
with my other (non-Clay-based) pages.  Any ideas?


Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com






SV: Client-id : _id0 is duplicated in the faces tree.

2007-02-28 Thread Hermod Opstvedt
Hi

Could you also post bugtest.html. That is likely to be the origin of the
Exception.

Also I would move to at least MyFaces 1.3 to see if the problem persists.

Hermod

-Opprinnelig melding-
Fra: Richard Eggert [mailto:[EMAIL PROTECTED] 
Sendt: 28. februar 2007 20:01
Til: user@shale.apache.org
Emne: Client-id : _id0 is duplicated in the faces tree.

I'm running into a problem using Xml views using HTML templates.  Loading
a page initially works fine, but if I reload the page either by clicking on
a link or hitting Refresh, I get the following error.


java.lang.IllegalStateException: Client-id : _id0 is duplicated in the faces
tree.
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspStateManagerImpl.java:241)
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspStateManagerImpl.java:255)
(the above line is repeated several times)
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(J
spStateManagerImpl.java:204)
   at
org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:
418)
...

The error goes away if I load the page again, and then comes back if I load
the page again after that.

I created a very simple test page to reproduce the problem:

bugTest.html
---
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Strict//EN
html
   head
  titleTesting/title
  meta http-equiv=Content-Type content=text/html;charset=UTF-8 /
  meta http-equiv=pragma content=no-cache
  meta http-equiv=cache-control content=no-cache
  meta http-equiv=expires content=0
   /head
   body
  foo
   /body
/html


clay-views.xml  (excerpt)

component jsfid=/bugTest.clay extends=clay
   attributes
  set name=clayJsfid value=/path/to/bugTest.html /
   /attributes
/component


(web.xml maps *.clay to the Faces servlet and the Shale application filter)

I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a bug in
Clay, or if I'm doing something wrong, but I've never seen this problem
before with my other (non-Clay-based) pages.  Any ideas?


Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com







RE: Client-id : _id0 is duplicated in the faces tree.

2007-02-28 Thread Richard Eggert
I did include bugTest.xml.  Re-read my email please. :-) 

I'm hoping to upgrade to MyFaces 1.1.4 some time in the near future.  
Unfortunately, I don't have complete control over when that happens, so I'm 
stuck with 1.1.1 at least until next week.

Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com



-Original Message-
From: Hermod Opstvedt [mailto:[EMAIL PROTECTED]
Sent: Wed 2/28/2007 4:35 PM
To: user@shale.apache.org
Subject: SV: Client-id : _id0 is duplicated in the faces tree.
 
Hi

Could you also post bugtest.html. That is likely to be the origin of the
Exception.

Also I would move to at least MyFaces 1.3 to see if the problem persists.

Hermod

-Opprinnelig melding-
Fra: Richard Eggert [mailto:[EMAIL PROTECTED] 
Sendt: 28. februar 2007 20:01
Til: user@shale.apache.org
Emne: Client-id : _id0 is duplicated in the faces tree.

I'm running into a problem using Xml views using HTML templates.  Loading
a page initially works fine, but if I reload the page either by clicking on
a link or hitting Refresh, I get the following error.


java.lang.IllegalStateException: Client-id : _id0 is duplicated in the faces
tree.
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspStateManagerImpl.java:241)
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspStateManagerImpl.java:255)
(the above line is repeated several times)
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(J
spStateManagerImpl.java:204)
   at
org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:
418)
...

The error goes away if I load the page again, and then comes back if I load
the page again after that.

I created a very simple test page to reproduce the problem:

bugTest.html
---
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Strict//EN
html
   head
  titleTesting/title
  meta http-equiv=Content-Type content=text/html;charset=UTF-8 /
  meta http-equiv=pragma content=no-cache
  meta http-equiv=cache-control content=no-cache
  meta http-equiv=expires content=0
   /head
   body
  foo
   /body
/html


clay-views.xml  (excerpt)

component jsfid=/bugTest.clay extends=clay
   attributes
  set name=clayJsfid value=/path/to/bugTest.html /
   /attributes
/component


(web.xml maps *.clay to the Faces servlet and the Shale application filter)

I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a bug in
Clay, or if I'm doing something wrong, but I've never seen this problem
before with my other (non-Clay-based) pages.  Any ideas?


Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com










RE: Client-id : _id0 is duplicated in the faces tree.

2007-02-28 Thread Richard Eggert
Err... I mean bugTest.html, not .xml. :-)

Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com



-Original Message-
From: Richard Eggert [mailto:[EMAIL PROTECTED]
Sent: Wed 2/28/2007 5:55 PM
To: user@shale.apache.org
Subject: RE: Client-id : _id0 is duplicated in the faces tree.
 
I did include bugTest.xml.  Re-read my email please. :-) 

I'm hoping to upgrade to MyFaces 1.1.4 some time in the near future.  
Unfortunately, I don't have complete control over when that happens, so I'm 
stuck with 1.1.1 at least until next week.

Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com



-Original Message-
From: Hermod Opstvedt [mailto:[EMAIL PROTECTED]
Sent: Wed 2/28/2007 4:35 PM
To: user@shale.apache.org
Subject: SV: Client-id : _id0 is duplicated in the faces tree.
 
Hi

Could you also post bugtest.html. That is likely to be the origin of the
Exception.

Also I would move to at least MyFaces 1.3 to see if the problem persists.

Hermod

-Opprinnelig melding-
Fra: Richard Eggert [mailto:[EMAIL PROTECTED] 
Sendt: 28. februar 2007 20:01
Til: user@shale.apache.org
Emne: Client-id : _id0 is duplicated in the faces tree.

I'm running into a problem using Xml views using HTML templates.  Loading
a page initially works fine, but if I reload the page either by clicking on
a link or hitting Refresh, I get the following error.


java.lang.IllegalStateException: Client-id : _id0 is duplicated in the faces
tree.
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspStateManagerImpl.java:241)
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(
JspStateManagerImpl.java:255)
(the above line is repeated several times)
   at
org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(J
spStateManagerImpl.java:204)
   at
org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:
418)
...

The error goes away if I load the page again, and then comes back if I load
the page again after that.

I created a very simple test page to reproduce the problem:

bugTest.html
---
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Strict//EN
html
   head
  titleTesting/title
  meta http-equiv=Content-Type content=text/html;charset=UTF-8 /
  meta http-equiv=pragma content=no-cache
  meta http-equiv=cache-control content=no-cache
  meta http-equiv=expires content=0
   /head
   body
  foo
   /body
/html


clay-views.xml  (excerpt)

component jsfid=/bugTest.clay extends=clay
   attributes
  set name=clayJsfid value=/path/to/bugTest.html /
   /attributes
/component


(web.xml maps *.clay to the Faces servlet and the Shale application filter)

I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a bug in
Clay, or if I'm doing something wrong, but I've never seen this problem
before with my other (non-Clay-based) pages.  Any ideas?


Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com











Re: Client-id : _id0 is duplicated in the faces tree.

2007-02-28 Thread Gary VanMatre
From: Richard Eggert [EMAIL PROTECTED] 

 I'm running into a problem using Xml views using HTML templates. Loading a 
 page initially works fine, but if I reload the page either by clicking on a 
 link 
 or hitting Refresh, I get the following error. 
 
 
 java.lang.IllegalStateException: Client-id : _id0 is duplicated in the faces 
 tree. 
 at 
 org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspS
  
 tateManagerImpl.java:241) 
 at 
 org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspS
  
 tateManagerImpl.java:255) 
 (the above line is repeated several times) 
 at 
 org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(JspSt
  
 ateManagerImpl.java:204) 
 at 
 org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:418)
  
 ... 
 
 The error goes away if I load the page again, and then comes back if I load 
 the 
 page again after that. 
 
 I created a very simple test page to reproduce the problem: 
 
 bugTest.html 
 --- 
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Strict//EN
html
   head
  titleTesting/title
  meta http-equiv=Content-Type content=text/html;charset=UTF-8 /
  meta http-equiv=pragma content=no-cache
  meta http-equiv=cache-control content=no-cache
  meta http-equiv=expires content=0
   /head
   body
  foo
   /bod y
/html


 
 
 clay-views.xml (excerpt) 
  
 
component jsfid=/bugTest.clay extends=clay
   attributes
  set name=clayJsfid value=/path/to/bugTest.html /
   /attributes
/component
 
 (web.xml maps *.clay to the Faces servlet and the Shale application filter) 
 
 I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a bug in 
 Clay, or if I'm doing something wrong, but I've never seen this problem 
 before 
 with my other (non-Clay-based) pages. Any ideas? 
 

 
Darn, I thought we had this one covered for all the releases but I must not 
have tested again with myfaces 1.1. There is some history with this issue.


This has to do with how the view root generates component ids. For components 
that you don't explicitly assign a component id, there is a utility function on 
the view root to generate a unique Id. In the first versions of Myfaces and the 
RI, the internal sequence that generates the ids was always reset even after 
the view was restored.


This is a significant because of components marked transient. Transient 
components do not save state in the view. The “verbatim” component is actual an 
outputText with the transient property tunned on. When the view is restored, we 
have to recreate transient components and these components will need generated 
component id's since this is just text. In the early version of clay, after the 
view was restored, we would generate, in sequence, component ids for all 
components including components that were restored because this counter was 
always reset. A clay html template contains allot of transient components 
because the entire template is defined using components (Thanks again to 
Manfred Klug who helped figure this all out). Interesting enough, making all 
the view represented by components is the same approach they took in JSF 1.2. 


The EG team determined that reseting the counter was a “bug”. The view root 
should restore the internal counter. Starting with version 1.1.2, myfaces 
changed the view roots to restore the counter. 


Clay Release 1.0.3
http://issues.apache.org/struts/browse/SHALE-195


The counter being reset made PPR or any changes to a restored component tree 
problematic. So, in JSF 1.2 they changed how component id's are generated. They 
are now generated by the the container for JSP tags implementing JspidConsumer 
(JSP 2.1). The JspidConsumer will always return the same id for a component.


Most recently, changes were made in this area to allow Clay to work with JSF 
1.2. 


Clay Release 1.0.4
http://issues.apache.org/struts/browse/SHALE-67


I thought that I had this covered for all releases but it sounds like it's an 
issue. Trying to play with all versions is challenge. I'd like to move the 
trunk to full JSF 1.2 support and leave the 1_0_X branch for JSF 1.1 flavors. 
There are features in JSF 1.2 that we can not support until we commit to the 
new EL API.


Please create a JIRA issue on this one.


 
 Rich Eggert 
 Member of Technical Staff 
 Proteus Technologies, LLC 
 http://www.proteus-technologies.com 
 
 

Gary

 
 
 

RE: Client-id : _id0 is duplicated in the faces tree.

2007-02-28 Thread Richard Eggert
Thanks for the explanation!  I've reported it as SHALE-418.

Is there a workaround, or do I just have to wait until I'm able to upgrade to 
MyFaces 1.1.4 (which won't be until late next week at the earliest)?


Rich Eggert
Member of Technical Staff
Proteus Technologies, LLC
http://www.proteus-technologies.com



-Original Message-
From: Gary VanMatre [mailto:[EMAIL PROTECTED]
Sent: Wed 2/28/2007 9:45 PM
To: user@shale.apache.org
Subject: Re: Client-id : _id0 is duplicated in the faces tree.
 
From: Richard Eggert [EMAIL PROTECTED] 

 I'm running into a problem using Xml views using HTML templates. Loading a 
 page initially works fine, but if I reload the page either by clicking on a 
 link 
 or hitting Refresh, I get the following error. 
 
 
 java.lang.IllegalStateException: Client-id : _id0 is duplicated in the faces 
 tree. 
 at 
 org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspS
  
 tateManagerImpl.java:241) 
 at 
 org.apache.myfaces.application.jsp.JspStateManagerImpl.checkForDuplicateIds(JspS
  
 tateManagerImpl.java:255) 
 (the above line is repeated several times) 
 at 
 org.apache.myfaces.application.jsp.JspStateManagerImpl.savedSerializedView(JspSt
  
 ateManagerImpl.java:204) 
 at 
 org.apache.shale.clay.faces.ClayViewHandler.renderView(ClayViewHandler.java:418)
  
 ... 
 
 The error goes away if I load the page again, and then comes back if I load 
 the 
 page again after that. 
 
 I created a very simple test page to reproduce the problem: 
 
 bugTest.html 
 --- 
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Strict//EN
html
   head
  titleTesting/title
  meta http-equiv=Content-Type content=text/html;charset=UTF-8 /
  meta http-equiv=pragma content=no-cache
  meta http-equiv=cache-control content=no-cache
  meta http-equiv=expires content=0
   /head
   body
  foo
   /bod y
/html


 
 
 clay-views.xml (excerpt) 
  
 
component jsfid=/bugTest.clay extends=clay
   attributes
  set name=clayJsfid value=/path/to/bugTest.html /
   /attributes
/component
 
 (web.xml maps *.clay to the Faces servlet and the Shale application filter) 
 
 I don't know if this is a bug in MyFaces (I'm using version 1.1.1), a bug in 
 Clay, or if I'm doing something wrong, but I've never seen this problem 
 before 
 with my other (non-Clay-based) pages. Any ideas? 
 

 
Darn, I thought we had this one covered for all the releases but I must not 
have tested again with myfaces 1.1. There is some history with this issue.


This has to do with how the view root generates component ids. For components 
that you don't explicitly assign a component id, there is a utility function on 
the view root to generate a unique Id. In the first versions of Myfaces and the 
RI, the internal sequence that generates the ids was always reset even after 
the view was restored.


This is a significant because of components marked transient. Transient 
components do not save state in the view. The verbatim component is actual an 
outputText with the transient property tunned on. When the view is restored, we 
have to recreate transient components and these components will need generated 
component id's since this is just text. In the early version of clay, after the 
view was restored, we would generate, in sequence, component ids for all 
components including components that were restored because this counter was 
always reset. A clay html template contains allot of transient components 
because the entire template is defined using components (Thanks again to 
Manfred Klug who helped figure this all out). Interesting enough, making all 
the view represented by components is the same approach they took in JSF 1.2. 


The EG team determined that reseting the counter was a bug. The view root 
should restore the internal counter. Starting with version 1.1.2, myfaces 
changed the view roots to restore the counter. 


Clay Release 1.0.3
http://issues.apache.org/struts/browse/SHALE-195


The counter being reset made PPR or any changes to a restored component tree 
problematic. So, in JSF 1.2 they changed how component id's are generated. They 
are now generated by the the container for JSP tags implementing JspidConsumer 
(JSP 2.1). The JspidConsumer will always return the same id for a component.


Most recently, changes were made in this area to allow Clay to work with JSF 
1.2. 


Clay Release 1.0.4
http://issues.apache.org/struts/browse/SHALE-67


I thought that I had this covered for all releases but it sounds like it's an 
issue. Trying to play with all versions is challenge. I'd like to move the 
trunk to full JSF 1.2 support and leave the 1_0_X branch for JSF 1.1 flavors. 
There are features in JSF 1.2 that we can not support until we commit to the 
new EL API.


Please create a JIRA issue on this one.


 
 Rich Eggert 
 Member of Technical Staff 
 Proteus Technologies, LLC 
 http://www.proteus-technologies.com 
 
 

Gary