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 10:42:18 UTC

[jira] [Created] (WICKET-6109) Enclosure - "IllegalArgumentException: Argument 'markup' may not be null" after app restart

Vlastimil created WICKET-6109:
---------------------------------

             Summary: 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


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)