[277530] JSP-editor shows corrupted (improperly rendered) JavaDoc within code-assist window
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
index e66fb7a..3ab70b5 100644
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
+++ b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
@@ -12,8 +12,11 @@
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IInformationControlCreator;
 import org.eclipse.jface.text.ITextViewer;
 import org.eclipse.jface.text.contentassist.ICompletionProposal;
+import org.eclipse.jface.text.contentassist.ICompletionProposalExtension3;
 import org.eclipse.jface.text.contentassist.ICompletionProposalExtension5;
 import org.eclipse.jface.text.contentassist.IContextInformation;
 import org.eclipse.swt.graphics.Image;
@@ -24,7 +27,7 @@
  *
  * @plannedfor 1.0
  */
-public class JSPCompletionProposal extends CustomCompletionProposal implements IJavaCompletionProposal, ICompletionProposalExtension5 {
+public class JSPCompletionProposal extends CustomCompletionProposal implements IJavaCompletionProposal, ICompletionProposalExtension3, ICompletionProposalExtension5 {
 
 	/*
 	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483
@@ -80,4 +83,40 @@
 
 		return additionalInfo;
 	}
+
+	/*
+	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension3#getInformationControlCreator()
+	 */
+	public IInformationControlCreator getInformationControlCreator() {
+		// [277530] Use the java proposal's information control creator
+		ICompletionProposal javaProposal = getJavaCompletionProposal();
+		IInformationControlCreator informationControlCreator = null;
+
+		if (javaProposal instanceof ICompletionProposalExtension3)
+			informationControlCreator = ((ICompletionProposalExtension3) javaProposal).getInformationControlCreator();
+
+		return informationControlCreator;
+	}
+
+	/*
+	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension3#getPrefixCompletionStart(org.eclipse.jface.text.IDocument, int)
+	 */
+	public int getPrefixCompletionStart(IDocument document, int completionOffset) {
+		ICompletionProposal javaProposal = getJavaCompletionProposal();
+		if (javaProposal instanceof ICompletionProposalExtension3)
+			return ((ICompletionProposalExtension3) javaProposal).getPrefixCompletionStart(document, completionOffset);
+
+		return getReplacementOffset();
+	}
+
+	/*
+	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension3#getPrefixCompletionText(org.eclipse.jface.text.IDocument, int)
+	 */
+	public CharSequence getPrefixCompletionText(IDocument document, int completionOffset) {
+		ICompletionProposal javaProposal = getJavaCompletionProposal();
+		if (javaProposal instanceof ICompletionProposalExtension3)
+			return ((ICompletionProposalExtension3) javaProposal).getPrefixCompletionText(document, completionOffset);
+
+		return getReplacementString();
+	}
 }