Hi,

I am an expert in shooting myself in the foot with Wicket / Java
problems.

In a situation like this, I would do the same as you do - isolate the
pattern and make a quickstart. Unfortunately, this approach is full of
assumptions, and my statistics say that this succeeds only in 20% of
all cases.

So I usually have to do it the hard way: Take a copy of the
application and strip it down generation by generation until the
culprit is isolated in its most simplistic form.

I think in 50% of all cases, I could see my own fault. In the other
50% I submitted a Wicket jira issue, where again in 50% of these it
was my fault not Wicket.

Regards,

Bernard



On Mon, 9 Dec 2013 05:28:52 +0000, you wrote:

>Wicketeers,
>
>I have another hard-to-track down issue.
>
>To make matters worse, I've actually taken this code/pattern, put it into a 
>quickstart - and what do you know - it works fine...! This means I have no way 
>to recreate this error in a demonstrable way. Hopefully if I throw this out 
>there, someone might be able to describe the error and I can then determine 
>what I'm doing to cause it. Unfortunately google has zero results for;
>
>+"Components can no  longer be added" +wicket
>
>Anyway... the exception I'm getting is;
>
>java.lang.IllegalStateException: Components can no  longer be added
>     at 
> org.apache.wicket.ajax.AbstractAjaxResponse.assertNotFrozen(AbstractAjaxResponse.java:740)
>     at 
> org.apache.wicket.ajax.AbstractAjaxResponse.assertComponentsNotFrozen(AbstractAjaxResponse.java:733)
>     at 
> org.apache.wicket.ajax.AbstractAjaxResponse.add(AbstractAjaxResponse.java:358)
>     at 
> org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:239)
>     at 
> org.apache.wicket.ajax.AjaxRequestHandler.add(AjaxRequestHandler.java:232)
>     at 
> org.apache.wicket.extensions.markup.html.repeater.tree.TableTree.updateBranch(TableTree.java:178)
>     at 
> org.apache.wicket.extensions.markup.html.repeater.tree.AbstractTree.expand(AbstractTree.java:204)
>     at myapp.TreeUtils.expandNode(TreeUtils.java:25)
>     at myapp.TreeUtils.expandAll(TreeUtils.java:19)
>
>
>It is caused when refreshing a table-tree component, that had previous 
>rendered correctly and had successfully expanded the nodes. This problem 
>happens when the table-trees parent component is refreshed, in which the table 
>is rebuilt from new, and replaced the old table. Having debugged the code, 
>it's something to do with the AjaxRequestHandler that has been retrieved - in 
>that it's components are 'frozen'. It's odd as I'm in  the onConfigure() part 
>of the lifecycle, and therefore components should be okay to be added - 
>especially as they are brand new components. Could the AjaxRequestHandler 
>being retrieved be the wrong one, stale one?
>
>List I said - I can't recreate it in a Quickstart, so there is obviously 
>something else in the 100k+s of the projects code that is doing something else 
>to mess it up.
>
>The 'Tree Utils' class looks like this;
>
>public class TreeUtils {
>
>    @SuppressWarnings("unchecked")
>    public static void expandAll( AbstractTree<?> tree ) {
>
>        // stupid cast!! Has to happen for use to retrieve the roots, 
> generically.
>        AbstractTree<Object> castTree = (AbstractTree<Object>) tree;
>
>        Iterator<?> roots = tree.getProvider().getRoots();
>        while( roots.hasNext() ) {
>
>            Object root = roots.next();
>            expandNode( castTree, root );
>        }
>    }
>
>    private static void expandNode( AbstractTree<Object> tree, Object node) {
>
>        tree.expand(node);
>
>        Iterator<?> children = tree.getProvider().getChildren(node);
>        while( children.hasNext() ) {
>
>            Object child = children.next();
>            expandNode( tree, child );
>        }
>    }
>}
>
>
>Any pointers and tips would be greatly appreciated.
>
>Cheers,
>Col.
>EMAIL DISCLAIMER This email message and its attachments are confidential and 
>may also contain copyright or privileged material. If you are not the intended 
>recipient, you may not forward the email or disclose or use the information 
>contained in it. If you have received this email message in error, please 
>advise the sender immediately by replying to this email and delete the message 
>and any associated attachments. Any views, opinions, conclusions, advice or 
>statements expressed in this email message are those of the individual sender 
>and should not be relied upon as the considered view, opinion, conclusions, 
>advice or statement of this company except where the sender expressly, and 
>with authority, states them to be the considered view, opinion, conclusions, 
>advice or statement of this company. Every care is taken but we recommend that 
>you scan any attachments for viruses.


---
This email is free from viruses and malware because avast! Antivirus protection 
is active.
http://www.avast.com


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to