Revert fix for [116119] I think this partially fixes the flakiness, but batch validation doesn't seem to be working for jsp actions (eg. jsp:forward).
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
index 8e8eb83..756566a 100644
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
+++ b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
@@ -40,8 +40,6 @@
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.util.URIResolver;
 import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
 import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
@@ -206,78 +204,75 @@
 		}
 	}
 	
-
 	/**
-	 * This validate call is for the ISourceValidator partial document
-	 * validation approach
-	 * 
+	 * This validate call is for the ISourceValidator partial document validation approach
 	 * @param dirtyRegion
 	 * @param helper
 	 * @param reporter
-	 * @see org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator
+	 *  @see org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator
 	 */
 	public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
-
+		
 		if (helper == null || fDocument == null)
 			return;
-
+		
 		if ((reporter != null) && (reporter.isCancelled() == true)) {
 			throw new OperationCanceledException();
 		}
-
+		
 		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
 		if (model == null)
 			return; // error
-
+	
 		try {
-
+		
 			IDOMDocument document = null;
-			if (model instanceof IDOMModel) {
-				document = ((IDOMModel) model).getDocument();
+			if(model instanceof IDOMModel) {
+				document = ((IDOMModel)model).getDocument();
 			}
 
 			if (document == null || !hasHTMLFeature(document))
-				return; // ignore
-
+				return ; // ignore
+	
 			ITextFileBuffer fb = FileBufferModelManager.getInstance().getBuffer(fDocument);
-			if (fb == null)
+			if(fb == null)
 				return;
-
+			
 			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(fb.getLocation());
-			if (file == null || !file.exists())
+			if(file == null || !file.exists())
 				return;
-
+			
 			// this will be the wrong region if it's Text (instead of Element)
 			// we don't know how to validate Text
-			IndexedRegion ir = getCoveringNode(dirtyRegion); //  model.getIndexedRegion(dirtyRegion.getOffset());
-			if (ir instanceof Text) {
-				while (ir != null && ir instanceof Text) {
+			IndexedRegion ir = model.getIndexedRegion(dirtyRegion.getOffset());
+			if(ir instanceof Text) {
+				while(ir != null && ir instanceof Text) {
 					// it's assumed that this gets the IndexedRegion to
 					// the right of the end offset
 					ir = model.getIndexedRegion(ir.getEndOffset());
 				}
 			}
 			
-			if (ir instanceof INodeNotifier) {
-
+			if(ir instanceof INodeNotifier) {
+				
 				INodeAdapterFactory factory = HTMLValidationAdapterFactory.getInstance();
-				ValidationAdapter adapter = (ValidationAdapter) factory.adapt((INodeNotifier) ir);
+				ValidationAdapter adapter = (ValidationAdapter) factory.adapt((INodeNotifier)ir);
 				if (adapter == null)
 					return; // error
-
+				
 				if (reporter != null) {
 					HTMLValidationReporter rep = null;
-					rep = getReporter(reporter, file, (IDOMModel) model);
+					rep = getReporter(reporter, file, (IDOMModel)model);
 					rep.clear();
 					adapter.setReporter(rep);
-
+					
 					String fileName = ""; //$NON-NLS-1$
 					IPath filePath = file.getFullPath();
 					if (filePath != null) {
 						fileName = filePath.toString();
 					}
 					String args[] = new String[]{fileName};
-
+		
 					Message mess = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(HTMLUIMessages.MESSAGE_HTML_VALIDATION_MESSAGE_UI_, args));
 					mess.setParams(args);
 					reporter.displaySubtask(this, mess);
@@ -286,67 +281,11 @@
 			}
 		}
 		finally {
-			if (model != null)
+			if(model != null)
 				model.releaseFromRead();
 		}
 	}
 
-	private IndexedRegion getCoveringNode(IRegion dirtyRegion) {
-		
-		IndexedRegion largestRegion = null;
-		if(fDocument instanceof IStructuredDocument) {
-			IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-			try {
-				if(sModel != null) {
-					IStructuredDocumentRegion[] regions = ((IStructuredDocument)fDocument).getStructuredDocumentRegions(dirtyRegion.getOffset(), dirtyRegion.getLength());
-				    largestRegion = getLargest(regions);
-				}
-			}
-			finally {
-				if(sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-		return largestRegion;
-	}
-	protected IndexedRegion getLargest(IStructuredDocumentRegion[] sdRegions) {
-		
-		if(sdRegions == null || sdRegions.length == 0)
-			return null;
-		 
-		IndexedRegion currentLargest = getCorrespondingNode(sdRegions[0]);
-		for (int i = 0; i < sdRegions.length; i++) {
-		    if(!sdRegions[i].isDeleted()) {
-    			IndexedRegion corresponding = getCorrespondingNode(sdRegions[i]);
-    			
-    			if(currentLargest instanceof Text)
-    				currentLargest = corresponding;
-    			
-                if(corresponding != null) {
-                	if(!(corresponding instanceof Text)) {
-	        			if (corresponding.getStartOffset() <= currentLargest.getStartOffset()  
-	        						&&  corresponding.getEndOffset() >= currentLargest.getEndOffset() )
-	        				currentLargest = corresponding;
-                	}
-                }
-                
-            }
-		}
-		return currentLargest;
-	}
-	protected IndexedRegion getCorrespondingNode(IStructuredDocumentRegion sdRegion) {
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-        IndexedRegion indexedRegion = null;
-        try {
-            if (sModel != null) 
-                indexedRegion = sModel.getIndexedRegion(sdRegion.getStart());    
-        } finally {
-            if (sModel != null)
-                sModel.releaseFromRead();
-        }
-        return indexedRegion;
-    }
-
 	/**
 	 * @see org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator
 	 */