Hi there, The Element::elements() methods return a List interface which is implemented as a BackedList. When we sought to use the List::add() method as follows:
root.elements().add(5, element); where root currently already contains 5 elements. We were getting an IndexOutOfBoundsException which reported itself with index=5, size=5 which doesn't match the conditions specified in the List interface JavaDoc: IndexOutOfBoundsException - if the index is out of range (index < 0 || index > size()). Looking into BackedList::add() it becomes obvious that the exception was actually being thrown by the List::get() method in which case, the exception makes perfect sense. I'd like to propose the following change to the add method to make BackedList::add() behave like List::add() - if there are reasons not to do this, then that's fine as well - but perhaps it should be a note somewhere - I didn't notice anything like that in the Cookbook (but I didn't do an exhaustive search). public void add(int index, Object object) { int realIndex = branchContent.size(); if (index < realIndex) { realIndex = branchContent.indexOf( get(index) ); } if ( realIndex < 0 ) { realIndex = ( index == 0 ) ? 0 : Integer.MAX_VALUE; } if ( realIndex < branchContent.size() ) { branchContent.add(realIndex, object); } else { branchContent.add(object); } branch.childAdded( asNode( object ) ); super.add(index, object); } Regards, Andy ______________________________________________________________________ Find, Connect, Date! http://personals.yahoo.ca _______________________________________________________________ Don't miss the 2002 Sprint PCS Application Developer's Conference August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm _______________________________________________ dom4j-dev mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dom4j-dev