Name: jl125535 Date: 07/19/2004 FULL PRODUCT VERSION : java version "1.5.0-beta3" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-beta3-b57) Java HotSpot(TM) Client VM (build 1.5.0-beta3-b57, mixed mode, sharing) ADDITIONAL OS VERSION INFORMATION : Microsoft Windows XP [Version 5.1.2600] EXTRA RELEVANT SYSTEM CONFIGURATION : This bug only occurs when using the windows XP look and feel. A DESCRIPTION OF THE PROBLEM : With java 1.5.0 when a tab in a JTabbedPane is closed, _while the mouse is over that tab_, a NullPointerException is thrown. This is a regression from java 1.4.2. STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : Run the program, below, on windows with the windows XP look and feel (not windows classic). EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - No exception should be thrown. ACTUAL - An exception is thrown, see below. ERROR MESSAGES/STACK TRACES THAT OCCUR : The full traceback is: Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 at javax.swing.plaf.basic.BasicTabbedPaneUI.getTabBounds(BasicTabbedPaneUI.java:1313) at javax.swing.plaf.basic.BasicTabbedPaneUI.getTabBounds(BasicTabbedPaneUI.java:1248) at com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI.setRolloverTab(WindowsTabbedPaneUI.java:82) at javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.layoutContainer(BasicTabbedPaneUI.java:2149) at java.awt.Container.layout(Container.java:1401) at java.awt.Container.doLayout(Container.java:1390) at java.awt.Container.validateTree(Container.java:1473) at java.awt.Container.validateTree(Container.java:1480) at java.awt.Container.validateTree(Container.java:1480) at java.awt.Container.validate(Container.java:1448) at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:379) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:113) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- import java.awt.*; import javax.swing.*; public class BugReport { public static void main(String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); final JTabbedPane tabs = new JTabbedPane(); tabs.addTab("Tab 1",new JPanel()); tabs.addTab("Tab 2",new JPanel()); JFrame frame = new JFrame("Bug Report"); frame.setContentPane(tabs); frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE); frame.pack(); frame.show(); Thread.sleep(2000); Rectangle d = tabs.getBoundsAt(1); Point p = new Point(d.x+d.width/2,d.y+d.height/2); SwingUtilities.convertPointToScreen(p,tabs); Robot robot = new Robot(); robot.mouseMove(p.x,p.y); Thread.sleep(2000); Runnable run = new Runnable() { public void run() { tabs.removeTabAt(1); tabs.revalidate(); tabs.repaint(); } }; SwingUtilities.invokeAndWait(run); } } ---------- END SOURCE ---------- Release Regression From : 1.4.2 The above release value was the last known release where this bug was known to work. Since then there has been a regression. (Incident Review ID: 286223) ======================================================================
|