JDK-5045914 : TEST_BUG & 1.5 REGRESSION: Test javax/swing/JScrollPane/4237560/bug4237560.java
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 5.0
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2004-05-12
  • Updated: 2004-06-14
  • Resolved: 2004-06-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
5.0 b56Fixed
Related Reports
Relates :  
Relates :  
Description

Name: iaR10016			Date: 05/12/2004


Filed By    : J2SE-SQA [###@###.###
JDK         : JDK1.5.0-b50, JDK1.4.2-b28
Testbase    : Regression-test
Platform[s] : all
switch/Mode : -client
Falling test: javax/swing/JScrollPane/4237560/bug4237560.java

Regression manual javax/swing/JScrollPane/4237560/bug4237560.java test fails with JDK1.5.0-b50,
JDK1.4.2-b28.

Test Description reads:
...
A JEditorPane contains 10 input fields and is inserted into JScrollPane.
Resize applet so that some fields are not shown, if it is needed.
Click in the last visible text field, then hit tab twice.
If this gives focus to the first text field, test passes, else it fails.
...

However, the user should click "tab" different number of times to move the
focus to the first text field depending on the number of input fields currently visible.

For example, if 8 text fields are shown and the focus is at the last visible text field,
the first text field gets the focus after clicking "tab" three times.

I believe that the test Description does not correspond to bug 4237560 and should be updated.

Please, see also bug 4237560 for more details.

Test source location:
=====================
/java/re/jdk/1.5.0/promoted/all/b50/ws/j2se/test/javax/swing/JScrollPane/4237560/bug4237560.java

jtr file location:
==================
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b50/regtest/linux/RedHat_Advanced_Server_3_Gnome__linux-16/workDir/test-manual/javax/swing/JScrollPane/4237560/bug4237560.jtr

How to reproduce:
=================
Run the following script (you may need to change its variables)
--- script start ---
#!/bin/sh
RESULT_DIR=`pwd`
WORK_DIR=$RESULT_DIR/workDir/test
REPORT_DIR=$RESULT_DIR/reportDir

#Paths in Java Software:
JT_HOME="/java/re/jct-tools/3.1.2/archive/fcs/binaries"
JAVA_HOME="/java/re/jdk/1.5.0/promoted/all/b50/binaries/linux-i586"
TEST_BASE_PATH="/java/re/jdk/1.5.0/promoted/all/b50/ws/j2se/test"

#Alternative paths outside Java Software
#JT_HOME="/net/koori.sfbay/onestop/jct-tools/3.1.2/archive/fcs/binaries"
#JAVA_HOME="/net/koori.sfbay/onestop/jdk/1.5.0/promoted/all/b50/binaries/linux-i586"
#TEST_BASE_PATH="/net/koori.sfbay/onestop/jdk/1.5.0/promoted/all/b50/ws/j2se/test"

#Alternative paths for the NSK site:
#JT_HOME="/net/linux-15/export/home/java/jct"
#JAVA_HOME="/net/linux-15/export/home/java/jdk1.5.0/linux"
#TEST_BASE_PATH="/net/linux-15/export/home/java/regtest.tiger/test"

TESTVMOPTS="-client"
CLASSPATH="$JT_HOME/classes:$JT_HOME/lib/javatest.jar:$JT_HOME/lib/jtreg.jar"
TEST="javax/swing/JScrollPane/4237560/bug4237560.java"

mkdir -p $WORK_DIR/scratch 2>&1
mkdir -p $WORK_DIR/jtData 2>&1
mkdir -p $REPORT_DIR 2>&1
#rm $WORK_DIR/jtData/ResultCache.jtw 2>&1
cd $WORK_DIR/scratch

$JAVA_HOME/bin/java -showversion -server -cp $CLASSPATH -DenvVars=TESTJAVAHOME=$JAVA_HOME,TESTVMOPTS=$TESTVMOPTS,DISPLAY=$DISPLAY,HOME=$HOME/.regtest,PATH=/bin:/usr/bin,CPAPPEND=$JEMMY_JAR,TZ=,LC_ALL=en_US,LC_CTYPE=en_US,LANG=en_US,LPDEST= -DDISPLAY=$DISPLAY -DlocalHost=`uname -n` -Dprogram=jtreg com.sun.javatest.regtest.Main -v default -batch -params  -keywords manual  -w "$WORK_DIR" -r "$REPORT_DIR" -t "$TEST_BASE_PATH" "$TEST_BASE_PATH/$TEST"
--- script end ---

Specific machine info:
======================
Hostname: linux-16
OS: RedHat Advanced Server 3 (Gnome)

======================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-rc FIXED IN: tiger-rc INTEGRATED IN: tiger-b56 tiger-rc
08-07-2004

EVALUATION Name: sh120115 Date: 05/12/2004 In fact, there area actually TWO problems here: The first one is simple - the description in the test case is bad. It should read something like: "Resize applet so that text field 1 is showing at the top, and the bottom two text fields are completely outside the visible area of the JScrollPane". The second problem is that the there actually is a regression in 1.5.0. To show this, use my modified version of the regression test (attached as bug5045914_updated.java). Compile and run it. It will print to the console whenever a text field gets focus. Now, put focus on the first JTextField. You'll see a message that it got focus. Now tab through until you get to the last JTextField. Next, hit tab again. The console will indicate that focus is going to the first text field again - but it actually doesn't as you can see. Tab again - the console will indicate that focus is going to the second text field - but it doesn't. It appears there are some extra invisible text fields that are part of the containment hierarchy. ###@###.### 2004-05-12 ====================================================================== Name: dsR10138 Date: 05/13/2004 This bug is a regression introduced by the fix 4928369. The fix for 4928369 calls modelChanged() in BasicTextUI on the "editable" property chage. It causes the new view hierarchy to be built. The old hierarchy is being destroyed by setting setParent(null). However, if the views haven't been layed out yet, FlowView.setParent() doesn't have any children. All its "child" views are inside LogicalView. So the ComponentView.setParent(null) is not being called and thus the text field components don't get removed from the JEditorPane. The idea of the fix is to make LogicalView the only child of FlowView when its being constructed. It will be removed while laying out FlowView later. ###@###.### 2004-05-13 ====================================================================== >The idea of the fix is to make LogicalView the only child >of FlowView when its being constructed. It will be removed >while laying out FlowView later. Unfortunately it is removed with all its children. That completely breaks FlowLayout. See 5065189 for the details ###@###.### 2004-06-21
21-06-2004