-
Bug
-
Resolution: Won't Fix
-
P3
-
None
-
5.0
-
sparc
-
solaris_2.6
Name: apR10229 Date: 06/15/2003
Filed By : SPB JCK team (###@###.###)
JDK : java full version "1.5.0-beta-b07"
JCK : 1.5
Platform[s] : Solaris
switch/Mode :
JCK test owner : http://javaweb.eng/jct/sqe/JCK-tck/usr/owners.jto
Failing Test [s] :
api/javax_swing/plaf/basic/BasicButtonUI/index.html#public[BasicButtonUI0002]
Problem description
===================
Specification of the javax.swing.plaf.basic.BasicButtonUI.installUI()
method is not clear. It does not specify what will happen if
we install UI more than once, e.g. if we try to install UI over
another previously installed UI we'll get internal API errors.
Documentation does not describe this kind of method's behavior,
though, installing UI several times on the same components should
be explicitly specified. To see how it works, run the example below.
Minimized test:
===============
------- StubBasicButtonUI.java -------
import javax.swing.*;
import javax.swing.plaf.basic.*;
import javax.swing.event.*;
import java.util.*;
import java.beans.*;
public class StubBasicButtonUI extends BasicButtonUI {
static JButton button = null;
public StubBasicButtonUI() {
super();
}
public BasicButtonListener createButtonListener(AbstractButton b) {
return new BasicButtonListener(b) {
public void propertyChange(PropertyChangeEvent e) {}
};
}
public static void main(String[] argv) {
button = new JButton("Test");
StubBasicButtonUI ui = new StubBasicButtonUI();
System.out.println("BEFORE installUI()");
printListeners();
ui.installUI(button);
System.out.println("AFTER installUI()");
printListeners();
ui.uninstallUI(button);
System.out.println("AFTER uninstallUI()");
printListeners();
}
static void printListeners() {
EventListener[] list = button.getListeners(ChangeListener.class);
int count = list.length;
System.out.println("Button contains "+count+" ChangeListeners");
for (int i=0; i<count; i++) {
System.out.println(" "+list[i].toString());
}
}
}
------- end-of-StubBasicButtonUI.java -------
Minimized test output:
======================
BEFORE installUI()
Button contains 1 ChangeListeners
javax.swing.plaf.basic.BasicButtonListener@1e9cb75
AFTER installUI()
Button contains 2 ChangeListeners
StubBasicButtonUI$1@2c84d9
javax.swing.plaf.basic.BasicButtonListener@1e9cb75
AFTER uninstallUI()
Button contains 1 ChangeListeners
StubBasicButtonUI$1@2c84d9
JCK test source location:
==========================
/java/re/jck/1.5/promoted/latest/JCK-runtime-15/tests
Test output:
=============
BasicButtonUI0002: Failed. Method uninstallUI does not uninstall listeners.
Specific Machine Info:
=====================
SunOS archer 5.8 Generic_108528-20 sun4u sparc SUNW,Ultra-4
======================================================================