IceFaces Duplicate component id error
From Foochal
[edit]
Exception stacktrace
SEVERE: Servlet.service() for servlet Persistent Faces Servlet threw exception javax.faces.FacesException: Can't parse stream for /index.jspx Failed to execute JSP lifecycle. at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:517) at com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:149) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137) at com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet.service(PersistentFacesServlet.java:394) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Caused by: javax.faces.FacesException: Failed to execute JSP lifecycle. at com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:140) at com.icesoft.faces.application.D2DViewHandler.renderResponse(D2DViewHandler.java:502) ... 20 more Caused by: java.lang.IllegalStateException: Duplicate component ID : _id9 at com.icesoft.faces.webapp.parser.Parser.executeJspLifecycle(Parser.java:176) at com.icesoft.faces.webapp.parser.Parser.executeJspLifecycle(Parser.java:186) at com.icesoft.faces.webapp.parser.Parser.executeJspLifecycle(Parser.java:186) at com.icesoft.faces.webapp.parser.Parser.executeJspLifecycle(Parser.java:186) at com.icesoft.faces.webapp.parser.Parser.executeJspLifecycle(Parser.java:186) at com.icesoft.faces.webapp.parser.Parser.executeJspLifecycle(Parser.java:186) at com.icesoft.faces.webapp.parser.Parser.parse(Parser.java:134) ... 21 more
[edit]
Solution
I was using <ice:panelBorder> with facets for north, east, ... components.
<f:facet name="north"> north </f:facet> <f:facet name="south"> south </f:facet>
It is required to wrap any child components of panelBorder facets in container tags. The following fixed the problem.
<f:facet name="north"> <ice:panelGroup> north </ice:panelGroup> </f:facet> <f:facet name="south"> <ice:panelGroup> south </ice:panelGroup> </f:facet>

