diff --git a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java index 446b17a3896ae8e68a6be9bab1c214d690479baa..55746bafd7f37c8f21b41d06417c34102770a9a5 100644 --- a/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java +++ b/SAS/OTB/OTB/src/nl/astron/lofar/sas/otb/util/treemanagers/ParmDBTreeManager.java @@ -64,6 +64,11 @@ public class ParmDBTreeManager extends GenericTreeManager implements ITreeManage logger.trace("Entry - TreeManager jParmDBnode-defineChildNodes("+toString()+")"); try { + // You must set the flag before defining children if you + // use "add" for the new children. Otherwise you get an infinite + // recursive loop, since add results in a call to getChildCount. + // However, you could use "insert" in such a case. + aNode.areChildrenDefined = true; Vector childs; if(((jParmDBnode)aNode.getUserObject()).name.equalsIgnoreCase("ParmDB")){ logger.trace("ParmDBtreeNode calling getNames("+((jParmDBnode)aNode.getUserObject()).nodeID().substring(6)+"*)"); @@ -104,7 +109,7 @@ public class ParmDBTreeManager extends GenericTreeManager implements ITreeManage item.name = childName; logger.trace("Node name selected : "+item.name); ((jParmDBnode)aNode.getUserObject()).leaf=false; - TreeNode newNode = new TreeNode(this.instance,item,item.name); + TreeNode newNode = new TreeNode(this.instance,item,item.nodeID()); aNode.add(newNode); TreeModelEvent evt = new TreeModelEvent(newNode,newNode.getPath());