users@javaserverfaces.java.net

Re: Component ID x has already been found in the view

From: Andreas Kuhn <a.kuhn_at_asc-sb.de>
Date: Mon, 06 Jul 2015 17:12:30 +0200

Hi Manfred,

thanks for your answer!

It's not the same id. One is "form:qwe:panelTest" and the other is
"form:xcvb234:panelTest".
"form:qwe:panelTest" is the one outside of the c:if and it seems to be
rendered two times during the render response phase.

I think there shouldn't be two panelTests in the component with the id
"qwe" in the following:

+id: form
    type: javax.faces.component.html.HtmlForm_at_3dae513e
     +id: xcvb234
      type: javax.faces.component.UINamingContainer_at_49b0a250
       +id: j_id2
        type: javax.faces.component.UIPanel_at_24e8a6b1
         +id: j_idt2
          type: com.sun.faces.facelets.tag.ui.ComponentRef_at_4a854334
           +id: panelTest
            type: javax.faces.component.html.HtmlPanelGrid_at_1c3e547f
     +id: qwe
      type: javax.faces.component.UINamingContainer_at_390d535b
       +id: j_id3
        type: javax.faces.component.UIPanel_at_5776d34b
         +id: j_idt2
          type: com.sun.faces.facelets.tag.ui.ComponentRef_at_189e4f3a
           +id: panelTest <===============
            type: javax.faces.component.html.HtmlPanelGrid_at_6d898ac6
         +id: j_idt5
          type: com.sun.faces.facelets.tag.ui.ComponentRef_at_7922bfb6
           +id: panelTest <===============
            type: javax.faces.component.html.HtmlPanelGrid_at_21671705

Kind Regards,
Andreas

Am 06.07.2015 16:51, schrieb manfred riem:
> Hi Andreas,
>
> If the id of the panelGrid ends up being the same id for both then
> you'll have to accommodate and make sure that is not the case.
>
> Thanks!
>
> Kind regards,
> Manfred Riem
>
> On 7/6/15, 9:41 AM, Andreas Kuhn wrote:
>> Hello,
>>
>> since updating to Mojarra 2.2.11 and Glassfish 4.1 we receive the
>> following error in our application:
>>
>> "java.lang.IllegalStateException: Komponenten-ID form:qwe:panelTest
>> wurde bereits in der Ansicht gefunden."
>> (Translation would probably be: "Component ID form:qwe:panelTest has
>> already been found in the view")
>>
>> The error happens when using a composite component that is
>> conditionally rendered by c:if and and a composite component outside
>> of the c:if. Both have different IDs but contain a h:panelGrid with
>> the same id "panelTest".
>> After clicking a commandLink that changes the state of the c:if
>> condition in a session scoped bean, the error occurs.
>>
>> I posted a small demonstration of the scenario to pastebin:
>>
>> http://pastebin.com/p3XcBWdB
>>
>>
>> We also tried Mojarra 2.3.0-m2 and the problem still persists.
>>
>> The application worked fine before with Mojarra 2.1.20 and Glassfish
>> 3.1.2.2.
>>
>> Regards,
>> Andreas Kuhn
>>
>


-- 
Andreas Kuhn
ASC Software Solutions GmbH
Nell-Breuning-Allee 6
66125 Saarbrücken
URL:     http://www.asc-sb.de
E-Mail:   a.kuhn_at_asc-sb.de
Handelsregister: Amtsgericht Saarbrücken, HRB 18259
Geschäftsführer: Anton Schäfer