You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Joonas Koivunen (JIRA)" <ji...@apache.org> on 2011/03/28 18:12:05 UTC

[jira] [Updated] (WICKET-3564) AjaxRequestTarget#addComponent(..) should guard against improper usage

     [ https://issues.apache.org/jira/browse/WICKET-3564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joonas Koivunen updated WICKET-3564:
------------------------------------

    Attachment: 3564-list_comp_resp.diff

Diff for freezing components, listeners and responders as late as possible. Untested.

> AjaxRequestTarget#addComponent(..) should guard against improper usage
> ----------------------------------------------------------------------
>
>                 Key: WICKET-3564
>                 URL: https://issues.apache.org/jira/browse/WICKET-3564
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket-core
>    Affects Versions: 1.4.17
>            Reporter: Joonas Koivunen
>         Attachments: 3564-list_comp_resp.diff
>
>
> It's possible to call ART#addComponent(...) from (for example) Component#onComponentTag(..) which will later throw ConcurrentModificationException from line 675 (getting next from iterator).
> Guarding the addComponent(Component, String) and the other add* and register* methods would seem better in the terms of fail-fast behaviour and save someone else a bit of debugging time.
> Patching this is rather trivial at least for Components; for javascripts I'm not sure if correctly blocking adding prependJs just before rendering it could break someones (already broken, unrendered) javascript?

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira