I just upgraded my trinidad jars to 1.0.7 and testing the code below still raises the expand all issue. If I put a value as low as 15 into the test, the expand all no longer works for me. Still I'm uncertain if this is desired behavior or not since it is called out in the developer handbook.
Also, when I use the latest jars, if I use a value as high as 5000, I get an exception that I never used to get with the old version I was running: 26 Mar 08 10:52:26, ERROR [http-0.0.0.0-18080-2] impl.Log4JLogger (Log4JLogger.java:119) - Servlet.service() for servlet Faces Servlet threw exception java.lang.IllegalArgumentException: row is unavailable at javax.faces.model.ListDataModel.getRowData(ListDataModel.java:66) at org.apache.myfaces.trinidad.model.SortableModel.getRowData(SortableModel.java:62) at org.apache.myfaces.trinidad.model.ChildPropertyTreeModel.getRowData(ChildPropertyTreeModel.java:206) at org.apache.myfaces.trinidad.model.ChildPropertyTreeModel.isContainer(ChildPropertyTreeModel.java:218) at org.apache.myfaces.trinidad.component.UIXHierarchy.isContainer(UIXHierarchy.java:117) at org.apache.myfaces.trinidad.component.HierarchyUtils.__iterateOverTree(HierarchyUtils.java:148) at org.apache.myfaces.trinidad.component.UIXTreeTable.processFacetsAndChildren(UIXTreeTable.java:376) at org.apache.myfaces.trinidad.component.UIXCollection.decodeChildrenImpl(UIXCollection.java:194) at org.apache.myfaces.trinidad.component.UIXComponentBase.decodeChildren(UIXComponentBase.java:905) at org.apache.myfaces.trinidad.component.UIXCollection.processDecodes(UIXCollection.java:188) at javax.faces.component.UIForm.processDecodes(UIForm.java:56) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:605) at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:138) at org.ajax4jsf.component.AjaxViewRoot.access$001(AjaxViewRoot.java:57) at org.ajax4jsf.component.AjaxViewRoot$1.invokeRoot(AjaxViewRoot.java:260) at org.ajax4jsf.context.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:56) at org.ajax4jsf.context.AjaxContextImpl.invokeOnRegionOrRoot(AjaxContextImpl.java:173) at org.ajax4jsf.component.AjaxViewRoot.processDecodes(AjaxViewRoot.java:276) at org.apache.myfaces.lifecycle.ApplyRequestValuesExecutor.execute(ApplyRequestValuesExecutor.java:32) at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:190) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.ghx.cc.commitment.jsf.filter.JSFAuthenticationFilter.doFilter(JSFAuthenticationFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:619) 26 Mar 08 10:52:26, ERROR [http-0.0.0.0-18080-1] impl.Log4JLogger (Log4JLogger.java:119) - Servlet.service() for servlet jsp threw exception java.lang.IllegalArgumentException: row is unavailable at javax.faces.model.ListDataModel.getRowData(ListDataModel.java:66) at org.apache.myfaces.trinidad.model.SortableModel.getRowData(SortableModel.java:62) at org.apache.myfaces.trinidad.model.ChildPropertyTreeModel.getRowData(ChildPropertyTreeModel.java:206) at org.apache.myfaces.trinidad.model.ChildPropertyTreeModel.isContainer(ChildPropertyTreeModel.java:218) at org.apache.myfaces.trinidad.component.UIXHierarchy.isContainer(UIXHierarchy.java:117) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.TreeTableRenderer$1.processRowImpl(TreeTableRenderer.java:516) at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop.processRow(TableUtils.java:117) at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop.loop(TableUtils.java:103) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.TreeTableRenderer$1.processRowImpl(TreeTableRenderer.java:529) at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop.processRow(TableUtils.java:117) at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop.loop(TableUtils.java:103) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.TreeTableRenderer$1.processRowImpl(TreeTableRenderer.java:529) at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop.processRow(TableUtils.java:117) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.TreeTableRenderer$1.loop(TreeTableRenderer.java:496) at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.table.TableUtils$RowLoop.run(TableUtils.java:75) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.TreeTableRenderer._renderTableRows(TreeTableRenderer.java:540) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.TreeTableRenderer.renderTableRows(TreeTableRenderer.java:379) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.DesktopTableRenderer.renderTableContent(DesktopTableRenderer.java:364) at org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.TableRenderer.encodeAll(TableRenderer.java:375) at org.apache.myfaces.trinidadinternal.renderkit.core.desktop.TreeTableRenderer.encodeAll(TreeTableRenderer.java:168) at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:224) at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:711) at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:525) at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:498) at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:366) at org.apache.myfaces.trinidad.webapp.UIXComponentTag.doEndTag(UIXComponentTag.java:120) at org.apache.jsp.jsp.test.testTreeTable_jsp._jspx_meth_tr_treeTable_0(testTreeTable_jsp.java:277) at org.apache.jsp.jsp.test.testTreeTable_jsp._jspx_meth_h_form_0(testTreeTable_jsp.java:170) at org.apache.jsp.jsp.test.testTreeTable_jsp._jspx_meth_f_view_0(testTreeTable_jsp.java:120) at org.apache.jsp.jsp.test.testTreeTable_jsp._jspService(testTreeTable_jsp.java:85) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43) at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:190) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.ghx.cc.commitment.jsf.filter.JSFAuthenticationFilter.doFilter(JSFAuthenticationFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:619) 26 Mar 08 10:52:26, ERROR [http-0.0.0.0-18080-1] impl.Log4JLogger (Log4JLogger.java:119) - Servlet.service() for servlet Faces Servlet threw exception javax.faces.FacesException: row is unavailable at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:425) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43) at org.apache.myfaces.trinidad.context.ExternalContextDecorator.dispatch(ExternalContextDecorator.java:43) at org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$OverrideDispatch.dispatch(FacesContextFactoryImpl.java:260) at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:182) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:190) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.ghx.cc.commitment.jsf.filter.JSFAuthenticationFilter.doFilter(JSFAuthenticationFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:619) Caused by: org.apache.jasper.JasperException: row is unavailable at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419) ... 41 more ----- Original Message ---- From: floor <[EMAIL PROTECTED]> To: [email protected] Sent: Wednesday, March 26, 2008 9:32:03 AM Subject: Re: Trinidad TreeTable behavior I decided to write some code to test this issue easily and found that the issue pops up with surprisingly little data. My test code follows... Please note that I haven't made sure I have the latest version yet.... I will do that soon. ------------------------testTreeTable.jsp----------------------------- <%@ page language="java" pageEncoding="ISO-8859-1"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="http://myfaces.apache.org/trinidad" prefix="tr"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <f:view> <h:form> <h:outputText value="Test TreeTable with " /> <h:inputText value="#{TEST.numberOfBranches}" /> <h:outputText value=" branches. " /> <h:commandLink value="Go" action="#{TEST.runTest}" /> <tr:treeTable value="#{TEST.model}" var="model" width="100%" rowBandingInterval="1" > <f:facet name="nodeStamp"> <tr:column> <tr:outputText value="#{model.thingName}" /> </tr:column> </f:facet> </tr:treeTable> </h:form> </f:view> </body> </html> ---------------------------------------------------------------------------------- ---------------------------TestTreeTable.java----------------------------- package test; import java.util.ArrayList; import java.util.List; import org.apache.myfaces.trinidad.model.ChildPropertyTreeModel; import org.apache.myfaces.trinidad.model.TreeModel; public class TestTreeTable { private TreeModel model; private ArrayList<TreeThing> modelList; private String numberOfBranches; public TestTreeTable() { numberOfBranches = "5"; modelList = new ArrayList<TreeThing>(); } public String runTest() { initializeTest(Integer.parseInt(numberOfBranches)); return ""; } private void initializeTest(int n) { TreeThing rootNode = new TreeThing("Scientific classification"); for(int i = 1; i <= n; i++) { TreeThing kingdom = new TreeThing("Kingdom " + i); TreeThing phylum = new TreeThing("Phylum " + i); TreeThing classTreeThing = new TreeThing("Class " + i); TreeThing order = new TreeThing("Order " + i); TreeThing family = new TreeThing("Family " + i); TreeThing genus = new TreeThing("Genus " + i); TreeThing species = new TreeThing("Species " + i); genus.getChildren().add(species); family.getChildren().add(genus); order.getChildren().add(family); classTreeThing.getChildren().add(order); phylum.getChildren().add(classTreeThing); kingdom.getChildren().add(phylum); rootNode.getChildren().add(kingdom); } modelList = new ArrayList<TreeThing>(); modelList.add(rootNode); model = new ChildPropertyTreeModel(modelList, "children"); } public TreeModel getModel() { return model; } public void setModel(TreeModel model) { this.model = model; } public String getNumberOfBranches() { return numberOfBranches; } public void setNumberOfBranches(String numberOfBranches) { this.numberOfBranches = numberOfBranches; } public class TreeThing { public TreeThing(String name) { _name = name; } public String getThingName() { return _name; } public List<TreeThing> getChildren() { return _children; } private final String _name; private final List<TreeThing> _children = new ArrayList<TreeThing>(); } } ---------------------------------------------------------------------------------- ____________________________________________________________________________________ Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping ____________________________________________________________________________________ Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
