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>
      <title>Testing</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




Reply via email to