myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Leonardo Uribe <lu4...@gmail.com>
Subject Re: RestoreView Problem after dynamically added component
Date Thu, 10 Apr 2014 17:21:05 GMT
Hi

I was able to reproduce the problem. But I can confirm the problem is
gone once you use 2.2.3 and make DynamicTab implements Serializable.
I'll try to find if there is a way to fix it somehow in 2.1.x, so it
can be "less broken".

regards,

Leonardo

2014-04-10 17:05 GMT+02:00 Volker Weber <v.weber@inexso.de>:
> Hi,
>
> we are facing a duplicate id exception after adding a component in
> applicationPhase to to view.
>
> We are using c:forEach and add an item to the iterated list in the
> actionListener.
>
> Saving this view is done without problem, but restoring this saved view
> results in a view containing the new component twice! Which results in a
> duplicate id exception when saving this restored view again.
>
> I found that this new component on creation is marked as
> "oam.COMPONENT_ADDED_AFTER_BUILD_VIEW.
> On restore view the facelet is used to recreate the view, which is
> including the new component because it is now included in the forEach
> iteration.
> After recreating the view with the facelet the view is extended with the
> components which were marked with "oam.COMPONENT_ADDED_AFTER_BUILD_VIEW
> when storing the view.
>
> At this point the component is duplicated in the view.
>
> The Problem is in
> org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy
> (row 437 to 451 in 2.1.10 sources), the component is added to the view
> regardless if there is already a component with same id.
>
> I have a example app to reproduce this Problem can downloaded here
> http://www.inexso.net/files/myfaces-dynamic-test.zip .
>
> Run this with "mvn jetty:run" to reproduce this.
>
> Running this with "mvn -Dcontainer=jetty-mojarra jetty:run" did not give
> me any error.
>
>
> Regards,
>   Volker
>
>
> --
> Volker Weber
> -Leiter Software-Entwicklung-
>
> inexso - information exchange solutions GmbH
> Ofener Str. 30      | 26121 Oldenburg
> www.inexso.de
>
> Firmensitz: Oldenburg | Amtsgericht Oldenburg HRB 205251
> Geschäftsführer: Stefan Schulte, Michael Terschüren
>
>

Mime
View raw message