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

Martin Grigorov commented on WICKET-4959:
-----------------------------------------

Hi,

Unfortunately I don't see a way how you can workaround this in 1.5.x.
Even if you copy the behavior from 6.x the new method won't be called because 
there is a change in Component.java too.
You can check the changes made in 6.x and port them to 1.5.x. If this fixes the 
problem then attach the patch and we will apply it for the next release of 
1.5.x.

> Notify behaviors when a component is removed from the tree
> ----------------------------------------------------------
>
>                 Key: WICKET-4959
>                 URL: https://issues.apache.org/jira/browse/WICKET-4959
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-extensions
>    Affects Versions: 6.4.0
>            Reporter: Paul
>            Assignee: Martin Grigorov
>            Priority: Minor
>             Fix For: 6.5.0
>
>         Attachments: WICKET-4959.patch, quickstart.zip
>
>
> I use a AjaxTabbedPanel on my page and run into the following problem:
> If there is an Behavior (AjaxSelfUpdatingTimer or AbstractAjaxTimerBehavior) 
> attached to one of the panels and the panel is replaced by another panel, the 
> AjaxBehavior is not properly removed and deactivated. After the idle-duration 
> the JS calls in and Wicket throws an exception due to the missing behavior.
> Stacktrace:
> ERROR - DefaultExceptionMapper     - Unexpected error occurred
> org.apache.wicket.behavior.InvalidBehaviorIdException: Cannot find behavior 
> with id '0' on component 
> 'org.apache.wicket.markup.html.panel.EmptyPanel:tabs:panel' in page '[Page 
> class = com.wicket.HomePage, id = 0, render count = 4]'. Perhaps the behavior 
> did not properly implement getStatelessHint() and returned 'true' to indicate 
> that it is stateless instead of returning 'false' to indicate that it is 
> stateful.
>       at org.apache.wicket.Behaviors.getBehaviorById(Behaviors.java:303)
>       at org.apache.wicket.Component.getBehaviorById(Component.java:4483)
>       at 
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:246)
>       at 
> org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:226)
> ...
> I attached a quickstart showing the problem. Simply take a look at second tab 
> and then go back to the first tab and you run into this problem. 
> There is a workaround for this: If you attach the behavior to a component of 
> the panel (i.e. the clock) this error doesn't occur.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to