be more benelovent with dissociated nodes

Signed-off-by: Florian Thienel <florian@thienel.org>
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
index 1cca42d..3a02dc8 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Element.java
@@ -228,9 +228,13 @@
 		}
 
 		sb.append("> (");
-		sb.append(getStartOffset());
-		sb.append(",");
-		sb.append(getEndOffset());
+		if (isAssociated()) {
+			sb.append(getStartOffset());
+			sb.append(",");
+			sb.append(getEndOffset());
+		} else {
+			sb.append("n/a");
+		}
 		sb.append(")");
 
 		return sb.toString();
diff --git a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
index 909bfec..3eedc39 100644
--- a/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
+++ b/org.eclipse.vex.core/src/org/eclipse/vex/core/internal/dom/Parent.java
@@ -85,6 +85,10 @@
 	 * @return all child nodes including Text nodes

 	 */

 	public List<Node> getChildNodes() {

+		if (!isAssociated()) {

+			return Collections.unmodifiableList(children);

+		}

+

 		return getChildNodes(getRange());

 	}

 

@@ -100,9 +104,10 @@
 	 * @return all child nodes which are completely within the given range plus the textual content

 	 */

 	public List<Node> getChildNodes(final Range range) {

+		final List<Node> result = new ArrayList<Node>();

+

 		final Range trimmedRange = range.trimTo(getRange());

 		int textStart = trimmedRange.getStartOffset();

-		final List<Node> result = new ArrayList<Node>();

 		for (final Node child : children) {

 			if (!child.isAssociated()) {

 				result.add(child);