You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Vlastimil (JIRA)" <ji...@apache.org> on 2016/03/02 12:37:18 UTC
[jira] [Updated] (WICKET-6109) Enclosure -
"IllegalArgumentException: Argument 'markup' may not be null" after app
restart
[ https://issues.apache.org/jira/browse/WICKET-6109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vlastimil updated WICKET-6109:
------------------------------
Attachment: enclosure-id-quickstart.zip
> Enclosure - "IllegalArgumentException: Argument 'markup' may not be null" after app restart
> -------------------------------------------------------------------------------------------
>
> Key: WICKET-6109
> URL: https://issues.apache.org/jira/browse/WICKET-6109
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 7.2.0, 7.3.0
> Reporter: Vlastimil
> Attachments: enclosure-id-quickstart.zip
>
>
> I've debugged it a bit and this is what happens:
> # Open some page with enclosure
> # Markup is parsed - {{ComponentTag}} of enclosure gets id: {{wicket_enclosure1011}}
> # {{Enclosure}} component is created and gets id from {{ComponentTag}}: {{wicket_enclosure1011}}
> # Page is rendered in browser - everything ok sofar
> # Restart server
> # Hit F5 in browser
> # Markup is parsed - {{ComponentTag}} of enclosure gets different id than in the first request: {{wicket_enclosure112113}}
> # {{Enclosure}} component is not created again (it is taken from page map??) - but this component has id from first request: {{wicket_enclosure1011}}
> # {{Enclosure.getMarkup()}} is called which delegates search to {{AssociatedMarkupSourcingStrategy.getMarkup()}} and here on line 117 it tries to find markup of enclosure by wrong id.
> # This obviously fails and markup is not found which results in this exception
> {code}
> java.lang.IllegalArgumentException: Argument 'markup' may not be null.
> at org.apache.wicket.util.lang.Args.notNull(Args.java:41) ~[wicket-util-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> at org.apache.wicket.markup.MarkupStream.<init>(MarkupStream.java:65) ~[wicket-core-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> at org.apache.wicket.markup.html.internal.Enclosure.getChild(Enclosure.java:136) ~[wicket-core-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> at org.apache.wicket.markup.html.internal.Enclosure.onConfigure(Enclosure.java:178) ~[wicket-core-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> at org.apache.wicket.Component.configure(Component.java:1055) ~[wicket-core-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> at org.apache.wicket.Component.internalBeforeRender(Component.java:940) ~[wicket-core-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> at org.apache.wicket.Component.beforeRender(Component.java:1017) ~[wicket-core-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1831) ~[wicket-core-7.3.0-SNAPSHOT.jar:7.3.0-SNAPSHOT]
> ... 55 common frames omitted
> {code}
> I will try to create a quickstart, but I don't know if I will be able to simulate this on simple page. Id of the enclosure is created by {{AbstractMarkupFilter.getRequestUniqueId()}} so the only way the id could be different is that another components call {{getRequestUniqueId()}} in different order each time. (or maybe I'am wrong.. :) )
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)