United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4666101 : 1.4.0 REGRESSION: JEditorPane: down arrow occasionally nonfunctional

Details
Type:
Bug
Submit Date:
2002-04-10
Status:
Resolved
Updated Date:
2003-04-12
Project Name:
JDK
Resolved Date:
2002-08-12
Component:
client-libs
OS:
windows_xp,windows_2000
Sub-Component:
javax.swing
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
1.4.0
Fixed Versions:
1.4.2 (mantis)

Related Reports
Duplicate:

Sub Tasks

Description

Name: jk109818			Date: 04/10/2002


FULL PRODUCT VERSION :
java version "1.4.0-rc"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-rc-b91)
Java HotSpot(TM) Client VM (build 1.4.0-rc-b91, mixed mode)


FULL OPERATING SYSTEM VERSION :
Microsoft Windows XP [Version 5.1.2600]


ADDITIONAL OPERATING SYSTEMS :
SunOS (machine name) 5.8 Generic_108528-08 sun4u sparc
SUNW,Ultra-60



A DESCRIPTION OF THE PROBLEM :
In a JEditorPane, the down arrow has no effect after you
add text on a line preceding a blank line.


REGRESSION.  Last worked in version 1.3.1

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. In a JEditorPane, hit Return twice.
2. Type "test".
3. Hit the up arrow twice.
4. Type "test".
5. Hit the down arrow.


EXPECTED VERSUS ACTUAL BEHAVIOR :
Expected: Cursor moves down.

Actual: Nothing happens.



ERROR MESSAGES/STACK TRACES THAT OCCUR :
(none)

This bug can be reproduced always.

---------- BEGIN SOURCE ----------
/**
 * Tests a bug in JEditorPane which prevents the down arrow from working in
 * some cases.
 *
 * To demontrate the bug, do the following in the JEditorPane that appears:
 * 1. Hit return twice.
 * 2. Type "test".
 * 3. Hit the up arrow twice.
 * 4. Type "test".
 * 5. Hit the down arrow.
 */

import javax.swing.*;
import javax.swing.text.*;

public class TestBug {
  public static void main(String args[]) {
    JFrame f = new JFrame();
    JEditorPane jep = new JEditorPane();
    jep.setEditable(true);
    f.getContentPane().add(jep);
    f.setVisible(true);
    f.setSize(500, 500);
    f.setLocation(100,100);
  }
}

---------- END SOURCE ----------

CUSTOMER WORKAROUND :
After typing text, use left or right arrows before using
down arrow.

Release Regression From : 1.3.1_03
The above release value was the last known release where this 
bug was known to work. Since then there has been a regression.

(Review ID: 145083) 
======================================================================

                                    

Comments
SUGGESTED FIX



Name: ik75403			Date: 08/01/2002

*** /export2/kid/tiger/webrev/src/share/classes/javax/swing/text/View.java-
Mon Jul 15 17:00:26 2002
--- View.java   Mon Jul 15 15:03:15 2002
--------------------------------------------------------------------------------
*** 511,520 ****
--- 511,525 ----
        biasRet[0] = Position.Bias.Forward;
        switch (direction) {
        case NORTH:
        case SOUTH:
        {
+           if (pos == -1) {
+               pos = (direction == NORTH) ? Math.max(0, getEndOffset() - 1) :
+                   getStartOffset();
+               break;
+           }
            JTextComponent target = (JTextComponent) getContainer();
            Caret c = (target != null) ? target.getCaret() : null;
            // YECK! Ideally, the x location from the magic caret position
            // would be passed in.
            Point mcp;

            





======================================================================
                                     
2004-06-11
EVALUATION



Name: ik75403			Date: 08/01/2002

The arrow does not work because at some point View.getNextVisualPositionFrom 
get called with position -1 and direction NORTH or SOUTH. View does not know 
how to handle it. 
The better fix for the bug is to not use -1 for positions.According to the 
javadoc -1 is not allowed there. We can change javadoc or we can change the 
sources. We'll see what we can do for tiger. 
======================================================================
                                     
2004-06-11
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
mantis
mantis-b02

FIXED IN:
mantis
mantis-b02

INTEGRATED IN:
mantis
mantis-b02


                                     
2004-06-14



Hardware and Software, Engineered to Work Together