Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6286501

JTabbedPane throws NPE from its stateChanged listener in particular case

    XMLWordPrintable

Details

    • b16
    • generic
    • generic

    Description

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

      FULL OPERATING SYSTEM VERSION :
      Microsoft Windows XP

      A DESCRIPTION OF THE PROBLEM :
      Run attached test and select any tab in the JTabbedPane
      you'll get the following exception

      java.lang.NullPointerException
      at javax.swing.plaf.basic.BasicTabbedPaneUI.scrollableTabLayoutEnabled(BasicTabbedPaneUI.java:246)
      at javax.swing.plaf.basic.BasicTabbedPaneUI.access$400(BasicTabbedPaneUI.java:37)
      at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.stateChanged(BasicTabbedPaneUI.java:3504)
      at javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:312)
      at javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:244)
      at javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:116)
      at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:50)

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      No exception is expected in this case

      ###@###.### 2005-06-16 09:03:33 GMT
      See below for the test case. Access was requested by java.net users who are active on the dev forum.

      % cat tabbedpanebug.java
      import javax.swing.*;
      import javax.swing.event.ChangeEvent;
      import javax.swing.event.ChangeListener;
      import java.awt.*;

      /**
       * @author ###@###.###
       */
      public class TabbedPaneBug extends JFrame implements ChangeListener{
              JTabbedPane tbp = new JTabbedPane();

              public static void main(String[] args) {
                      new TabbedPaneBug();
              }
              
              public TabbedPaneBug(){
                      super("JTabbedPane Testing");
                      
                      tbp.addTab("Tab 1 " , new JLabel("I am JLabel 1"));
                      tbp.addTab("Tab 2 " , new JLabel("I am JLabel 2" ));
                      tbp.addTab("Tab 3 " , new JLabel("I am JLabel 3 "));
                      tbp.addTab("Tab 4 " , new JLabel("I am JLabel 4"));
                      
                      setLayout(new BorderLayout());
                      add(tbp,BorderLayout.CENTER);
                      tbp.addChangeListener(this);

                      setSize(600,200);
                      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                      setVisible(true);
              }

              public void stateChanged(ChangeEvent arg0) {
                  tbp.updateUI();
              }
      }

      Attachments

        Issue Links

          Activity

            People

              psadhukhan Prasanta Sadhukhan
              alexp Alexander Potochkin (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: