Fixed bug 416666: [JFace] IllegalArgumentException: Argument not valid while using large text with DefaultInformationControl
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/html/HTMLTextPresenter.java b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/html/HTMLTextPresenter.java
index 3216f8e..cff9634 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/html/HTMLTextPresenter.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/html/HTMLTextPresenter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2013 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
@@ -124,7 +124,7 @@
 			int maxNumberOfLines= Math.round(maxHeight / gc.getFontMetrics().getHeight());
 
 			fCounter= 0;
-			LineBreakingReader reader= new LineBreakingReader(createReader(hoverInfo, presentation), gc, maxWidth);
+			LineBreakingReader reader= new LineBreakingReader(createReader(hoverInfo, presentation), hoverInfo.length(), gc, maxWidth);
 
 			boolean lastLineFormatted= false;
 			String lastLineIndent= null;
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/link/contentassist/LineBreakingReader.java b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/link/contentassist/LineBreakingReader.java
index 480591c..4bfebf2 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/link/contentassist/LineBreakingReader.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/internal/text/link/contentassist/LineBreakingReader.java
@@ -36,13 +36,36 @@
 
 	/**
 	 * Creates a reader that breaks an input text to fit in a given width.
-	 *
-	 * @param reader Reader of the input text
+	 * 
+	 * @param reader reader for the input text
 	 * @param gc The graphic context that defines the currently used font sizes
 	 * @param maxLineWidth The max width (pixels) where the text has to fit in
 	 */
 	public LineBreakingReader(Reader reader, GC gc, int maxLineWidth) {
-		fReader= new BufferedReader(reader);
+		this(new BufferedReader(reader), gc, maxLineWidth);
+	}
+
+	/**
+	 * Creates a reader that breaks an input text to fit in a given width.
+	 * 
+	 * @param reader the reader for the input text
+	 * @param bufferSize the buffer size
+	 * @param gc The graphic context that defines the currently used font sizes
+	 * @param maxLineWidth The max width (pixels) where the text has to fit in
+	 */
+	public LineBreakingReader(Reader reader, int bufferSize, GC gc, int maxLineWidth) {
+		this(new BufferedReader(reader, bufferSize), gc, maxLineWidth);
+	}
+
+	/**
+	 * Creates a reader that breaks an input text to fit in a given width.
+	 * 
+	 * @param reader the buffered reader for the input text
+	 * @param gc The graphic context that defines the currently used font sizes
+	 * @param maxLineWidth The max width (pixels) where the text has to fit in
+	 */
+	private LineBreakingReader(BufferedReader reader, GC gc, int maxLineWidth) {
+		fReader= reader;
 		fGC= gc;
 		fMaxWidth= maxLineWidth;
 		fOffset= 0;