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

BasicColorChooserUI tests throw NPE while getColorSelectionModel if isPropertyChanged() returns true

XMLWordPrintable

    • b38
    • generic
    • generic
    • Verified

      JCK : JCK-runtime-6b
      J2SE : FAIL - since JDK 7 b27
      Platform[s] : FAIL - all
      switch/Mode : FAIL - any


      Two JCK 6b tests fail since b27:

      api/javax_swing/plaf/basic/BasicColorChooserUI/index.html#protected[BasicColorChooserUI2005]
      api/javax_swing/plaf/basic/BasicColorChooserUI/index.html#public[BasicColorChooserUI0001]

      with the following stack trace:

      at javax.swing.colorchooser.AbstractColorChooserPanel.getColorSelectionModel(AbstractColorChooserPanel.java:163)
      at javax.swing.colorchooser.AbstractColorChooserPanel.getColorFromModel(AbstractColorChooserPanel.java:171)
      at javax.swing.colorchooser.DefaultHSBChooserPanel.getHSBColorFromModel(DefaultHSBChooserPanel.java:264)
      at javax.swing.colorchooser.DefaultHSBChooserPanel.updateChooser(DefaultHSBChooserPanel.java:238)
      at javax.swing.plaf.basic.BasicColorChooserUI.selectionChanged(BasicColorChooserUI.java:224)
      at javax.swing.plaf.basic.BasicColorChooserUI.access$100(BasicColorChooserUI.java:47)
      at javax.swing.plaf.basic.BasicColorChooserUI$Handler.stateChanged(BasicColorChooserUI.java:236)
      at javax.swing.colorchooser.DefaultColorSelectionModel.fireStateChanged(DefaultColorSelectionModel.java:150)
      at javax.swing.colorchooser.DefaultColorSelectionModel.setSelectedColor(DefaultColorSelectionModel.java:99)

      steps to reproduce:

      compile and run the following code:

      import java.awt.*;
      import java.beans.*;
      import java.io.PrintWriter;
      import javax.swing.*;
      import javax.swing.colorchooser.*;
      import javax.swing.event.*;
      import javax.swing.plaf.*;
      import javax.swing.plaf.basic.*;


      public class Sample{

      public static void main(String ... args)
      {
              BasicColorChooserUI c = new BasicColorChooserUI(){

                  private boolean propertyChanged;

      protected PropertyChangeListener createPropertyChangeListener() {

      return new PropertyChangeListener() {
      public void propertyChange(PropertyChangeEvent e) {
      propertyChanged = true;
      }
      };
      }

                  public boolean isPropertyChanged() {
      boolean temp = propertyChanged;
                          propertyChanged = false;
                          return temp;
                  }
          
      public void installUI(JComponent c) {
                          super.installUI(c);
                          propertyChanged = false;
                  }
      };
              JColorChooser chooser = new JColorChooser();

              chooser.getUI().uninstallUI(chooser);
              c.installUI(chooser);

              chooser.getSelectionModel().setSelectedColor(Color.blue);
              System.out.println("OKAY");
          }
      }

            malenkov Sergey Malenkov (Inactive)
            pastepan Pavel Stepanov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: