Okay...after further digging I think I found the problem...the use of Collections.EMPTY_LIST.
In AbstractTree: private final void buildItemChildren(TreeItem item) { List items; // if the node is expanded if (isNodeExpanded((TreeNode)item.getModelObject())) { // build the items for children of the items' treenode. items = buildTreeItems(nodeChildren((TreeNode)item.getModelObject()), item.getLevel() + 1); } else { // it's not expanded, just set children to an empty list items = Collections.EMPTY_LIST; } item.setChildren(items); } In Collections.java private static class EmptyList extends AbstractList implements RandomAccess, Serializable { // use serialVersionUID from JDK 1.2.2 for interoperability private static final long serialVersionUID = 8842843931221139166L; public int size() {return 0;} public boolean contains(Object obj) {return false;} public Object get(int index) { throw new IndexOutOfBoundsException("Index: "+index); } // Preserves singleton property private Object readResolve() { return EMPTY_LIST; } } In AbstractList.java: public void add(int index, E element) { throw new UnsupportedOperationException(); } Question: - Why use Collections.EMPTY_LIST? Why not new ArrayList(0)? My situation is that I am building a tree dynamically and the node will not be expanded initially because there are no child nodes. However, I dynamically add child nodes to the unexpanded node which causes this error. - Doug -- View this message in context: http://www.nabble.com/TreeModel-error-tf4788794.html#a13699709 Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]