[219823] Large content change to a DTD hangs the UI
diff --git a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java
index d399acb..fdd1531 100644
--- a/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java
+++ b/bundles/org.eclipse.wst.dtd.ui/src/org/eclipse/wst/dtd/ui/views/contentoutline/DTDTreeContentProvider.java
@@ -222,20 +222,14 @@
 			//update the tree
 			refreshTree(event);
 
-			Iterator iter = event.getNodes().iterator();
-			List newSelection = new ArrayList();
-			while (iter.hasNext()) {
-				DTDNode node = (DTDNode) iter.next();
+			final List nodes = event.getNodes();
+			if (!nodes.isEmpty()) {
+				final DTDNode node = (DTDNode) nodes.get(0);
 				if (oldSelectedNode == null || node.getStructuredDTDDocumentRegion() != oldSelectedNode.getStructuredDTDDocumentRegion() || node.getStartOffset() != oldSelectedNode.getStartOffset() || node.getEndOffset() != oldSelectedNode.getEndOffset()) {
-					// add to selection
-					newSelection.add(node);
 					expandToNode(node);
+					viewer.setSelection(new StructuredSelection(node));
 				}
 			}
-			if (newSelection.size() > 0) {
-				viewer.setSelection(new StructuredSelection(newSelection));
-			}
-
 		}
 	}