[jdom-interest] Problem with Jdom8 - getChildren() on root do esn't work...

Bradley S. Huffman hip at a.cs.okstate.edu
Mon Apr 8 12:29:23 PDT 2002

"Beleznay, Dave" writes:

> Did this ever get resolved?

The part about EJB and a possible serialization problem? Not yet.

> I seem to be having the same problem when
> I'm trying getChildren() on the root element.
> the List children contains no elements after the assignment. 

He's you code annotated with with what the current design
should produce and why.

// get a 'live' list of rootElement's content, by 'live' we mean changes
// it, also show in rootElement and any other 'live' list obtained from
// a call to getChildren or getContent on the same element. getChildren
// returns a view of the Elements content where only objects of type
// Element are visiable. Since it is live however, children.add(someElement)
// produces the same result as rootElement(someElement).
List children = rootElement.getChildren();

// removes all Element children from rootElement, which means all items are
// also removed from List children, rootElement may still have content it
// just won't be a instanceof Element.

// this produces a iterator where hasNext() initially will return false
// since children is empty
ListIterator i = children.listIterator();

// hasNext() is false so the loop is never executed
while (i.hasNext()) {
    Element ele = (Element) i.next();
    String eleName = ele.getName();
    if (eleName.equals("role")) {
        i.next();   // I assume this is a typo, otherwise you have 2 next()
                    // in a row without a corresponding hasNext() 

// children is empty so this does nothing

Little long winded but there seems to be some confussion caused by having
all Lists 'live', guess we need to improve the docs.


More information about the jdom-interest mailing list