[339328] Wrong beginning replacement offset used when apply tag proposals in first child level of DOM Document
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/LibraryTagsCompletionProposalComputer.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/LibraryTagsCompletionProposalComputer.java
index 92cd295..c2843de 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/LibraryTagsCompletionProposalComputer.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/LibraryTagsCompletionProposalComputer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2010 IBM Corporation and others.
+ * Copyright (c) 2010, 2011 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -327,9 +327,18 @@
 						image = this.getGenericTagImage();
 					}
 					String proposedText = getRequiredText(document, ed);
+					final IStructuredDocumentRegion region = contentAssistRequest.getDocumentRegion();
+					if (region != null && region.getFirstRegion() != null && region.getFirstRegion().getType().equals(DOMRegionContext.XML_TAG_OPEN) && proposedText.length() > 0) {
+							//in order to differentiate between content assist on 
+							//completely empty document and the one with xml open tag
+							proposedText = proposedText.substring(1);
+					}
+					if (!beginsWith(proposedText, contentAssistRequest.getMatchString())) {
+						return;
+					}
 					String tagname = getRequiredName(document, ed);
 					// account for the < and >
-					int markupAdjustment = getContentGenerator().getMinimalStartTagLength(document, ed);
+					int markupAdjustment = getCursorPositionForProposedText(proposedText);
 					String proposedInfo = getAdditionalInfo(null, ed);
 					CustomCompletionProposal proposal = new CustomCompletionProposal(
 							proposedText, contentAssistRequest.getReplacementBeginPosition(),