jdk/src/share/classes/javax/swing/text/CompositeView.java
changeset 21256 dfb1f9090caa
parent 20158 1c5d22e5b898
child 22260 c9185e010e03
--- 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) {