[ 
https://issues.apache.org/jira/browse/WICKET-5709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14147343#comment-14147343
 ] 

Rudi Wijaya commented on WICKET-5709:
-------------------------------------

The error happens when updating the BippoNavbar component :

{code}
loginForm = new Form<>("loginForm");
loginButton = new LoginButton("login", loginTokenModel, tenant.getTenantId()) {
        @Override
        protected void onLoginSuccess(AjaxRequestTarget target, String 
personId) {
                super.onLoginSuccess(target, personId);
                log.debug("LoginButton has logged in '{}', redirecting to 
original page...", personId);
                currentPersonModel.detach();
                currentPersonInfoModel.detach();
                smallImgSrcModel.detach();
                accountSettingsUriModel.detach();
                
                final BippoWebSession bippoWebSession = (BippoWebSession) 
getSession();
                new EnsureCartFunction().apply(bippoWebSession);
                
                target.add(BippoNavbar.this); // StackOverflowError here -- 
commenting this line makes the error go away
        }
};
{code}

Note that after the StackOverflowError, it is possible to F5 refresh the page, 
and indeed all components will be rendered correctly.

Also, during {{onSubmit()}}, the {{LoginButton}} itself and its parent (the 
login form) will be {{setVisible(false)}}, but {{BippoNavbar}} is still visible.


> When clicking IndicatingAjaxButton: java.lang.StackOverflowError at 
> org.apache.wicket.util.visit.Visits.visitChildren
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-5709
>                 URL: https://issues.apache.org/jira/browse/WICKET-5709
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.17.0
>         Environment: Tomcat 7, Spring 4.0.7, Oracle JDK 8u20 64-bit, Ubuntu 
> 14.04 64-bit
>            Reporter: Rudi Wijaya
>         Attachments: 
> wicket-stackoverflow-in-DedicatedLoginPage-loginvianavbar.pdf
>
>
> We have a page named {{DedicatedLoginPage}}, and when clicking a 
> {{LoginButton}} (which essentially is an {{IndicatingAjaxButton}}) with path 
> {{navbar:loginDropdown:loginForm:login}}, throws a {{StackOverflowError}} 
> without additional explanation.
> {code}
> java.lang.StackOverflowError
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:134) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:100)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.Component.getMarkup(Component.java:755) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:82)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:72)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860) 
> ~[wicket-core-6.17.0.jar:6.17.0]
> ....
> repeats a couple hundred times
> ....
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:100)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.Component.getMarkup(Component.java:755) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:82)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:72)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:100)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.Component.getMarkup(Component.java:755) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:82)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
> {code}
> It's very confusing for me to diagnose this problem because the stacktrace 
> gives no information, also there are no additional information in the logs 
> before the exception.
> Unfortunately the page is already quite complex, see attached PDF.
> Tag [~ceefour]
> Internal note: Above trace happened on {{metros}} theme, when using {{demo}} 
> theme, still occurs with slightly different trace:
> {code}
> java.lang.StackOverflowError
>       at 
> org.soluvas.web.bootstrap.BootstrapPage.getMarkup(BootstrapPage.java:65532) 
> ~[classes/:na]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:82)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.Component.getMarkup(Component.java:755) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:82)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:72)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860) 
> ~[wicket-core-6.17.0.jar:6.17.0]
> ...
> repeats a couple hundred times
> ...
>       at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:100)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.Component.getMarkup(Component.java:755) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:82)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.getMarkup(MarkupContainer.java:451) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:72)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy$1.component(AbstractMarkupSourcingStrategy.java:66)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123) 
> ~[wicket-util-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:860) 
> ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.AbstractMarkupSourcingStrategy.searchMarkupInTransparentResolvers(AbstractMarkupSourcingStrategy.java:65)
>  ~[wicket-core-6.17.0.jar:6.17.0]
>       at 
> org.apache.wicket.markup.html.panel.DefaultMarkupSourcingStrategy.getMarkup(DefaultMarkupSourcingStrategy.java:100)
>  ~[wicket-core-6.17.0.jar:6.17.0]
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to