--- a/jdk/src/share/classes/javax/swing/text/CompositeView.java Mon Oct 14 13:22:36 2013 +0400
+++ b/jdk/src/share/classes/javax/swing/text/CompositeView.java Mon Oct 14 13:59:38 2013 +0400
@@ -435,8 +435,12 @@
* might not allow access to some of the locations in the model.
* This is a convenience method for {@link #getNextNorthSouthVisualPositionFrom}
* and {@link #getNextEastWestVisualPositionFrom}.
+ * This method enables specifying a position to convert
+ * within the range of >=0. If the value is -1, a position
+ * will be calculated automatically. If the value < -1,
+ * the {@code BadLocationException} will be thrown.
*
- * @param pos the position to convert >= 0
+ * @param pos the position to convert
* @param b a bias value of either <code>Position.Bias.Forward</code>
* or <code>Position.Bias.Backward</code>
* @param a the allocated region to render into
@@ -452,12 +456,16 @@
* @param biasRet an array containing the bias that was checked
* @return the location within the model that best represents the next
* location visual position
- * @exception BadLocationException
+ * @exception BadLocationException the given position is not a valid
+ * position within the document
* @exception IllegalArgumentException if <code>direction</code> is invalid
*/
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a,
int direction, Position.Bias[] biasRet)
throws BadLocationException {
+ if (pos < -1) {
+ throw new BadLocationException("invalid position", pos);
+ }
Rectangle alloc = getInsideAllocation(a);
switch (direction) {