protected void processChildren(QueryNode queryTree) throws QueryNodeException {
  List<QueryNode> children=queryTree.getChildren();
  ChildrenList newChildren;
  if (children != null && children.size() > 0) {
    newChildren=allocateChildrenList();
    try {
      for (      QueryNode child : children) {
        child=processIteration(child);
        if (child == null) {
          throw new NullPointerException();
        }
        newChildren.add(child);
      }
      List<QueryNode> orderedChildrenList=setChildrenOrder(newChildren);
      queryTree.set(orderedChildrenList);
    }
  finally {
      newChildren.beingUsed=false;
    }
  }
}

protected void processChildren ( QueryNode queryTree ) throws QueryNodeException { List < QueryNode > children = queryTree . getChildren ( ) ; ChildrenList newChildren ; if ( children != null && children . size ( ) > 0 ) { newChildren = allocateChildrenList ( ) ; try { for ( QueryNode child : children ) { child = processIteration ( child ) ; if ( child == null ) { throw new NullPointerException ( ) ; } newChildren . add ( child ) ; } List < QueryNode > orderedChildrenList = setChildrenOrder ( newChildren ) ; queryTree . set ( orderedChildrenList ) ; } finally { newChildren . beingUsed = false ; } } }
this method is called every time a child is processed .
