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

REGRESSION: JTable ListSelection Model or Key/Mouse event improper func.

    XMLWordPrintable

Details

    Description

      FULL PRODUCT VERSION :
      all the JRE 1.5 versions even the latest

      FULL OS VERSION :
      Windows XP

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      This bug happens on all my clients machines so you should be able to reproduce it very easily.

      A DESCRIPTION OF THE PROBLEM :
      A fully loaded JTable inside of a JScrollPane when multiple selections are made with the <Cntrl> key down after several random selections are made it will deselect all previous selections as though the <Cntrl> was not pressed. This happens randomly after 3 to 10 selections are made. It happens on other machines than just one and stops happening when I go back to the 1.4 JVM. I have reproduced this bug with the DefaultTableModel loaded to 25 columns and a thousand rows. I can send you a jar file with example code to demo it if you like. I have found other flakey things about the version also and at here at Bellsouth we can't use your new JVM until these issues are addressed.

      THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: Did not try

      THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Did not try

      REGRESSION. Last worked in version mustang

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Take the code I pasted below although it is just filling a DefaultTableModel with 25 columns and a thousand rows and displaying it in a JScrollPane. Run it and hold the <Ctrl> down and start selecting. Keep the control key down and eventually all your previous selections will disapear. Usually after several selections have been made. Sometimes after scrolling to view more rows. Make certain to select mulptiple intervals.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      I expect that when the <Cntrl> key is held down the previous selections will be preserved like in the 1.4.2 JVM

      This does not happen.
      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      No error or exception messages raised.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package com.bugs.jdk5;

      import javax.swing.*;
      import java.awt.*;
      import java.util.*;
      import javax.swing.table.*;

      public class SwingDemo
          extends JFrame
      {
          protected JScrollPane jScrollPane1 = new JScrollPane();
          protected JTable table = new JTable();

          public SwingDemo() throws HeadlessException
          {
              try
              {
                  this.loadTableModel();
                  jbInit();
              }
              catch (Exception e)
              {
                  e.printStackTrace();
              }
          }

          private void loadTableModel()
          {
              int columnCount = 25;
              int rowCount = 1000;

              Vector columns = new Vector();
              for (int i = 1; i <= columnCount; i++)
              {
                  String val = "Column " + i;
                  columns.add(val);
              }

              Vector data = new Vector();
              for (int r = 0; r < rowCount; r++)
              {
                  Vector row = new Vector();
                  for (int c = 0; c < columnCount; c++)
                  {
                      String val = "value r="+r+" c="+c;
                      row.add(val);
                  }
                  data.add(row);
              }
              DefaultTableModel model = new DefaultTableModel(data,columns)
              {
                  public boolean isCellEditable(int r, int c)
                  {
                      return false;
                  }
              };
              table.setModel(model);
          }

          public static void main(String[] args) throws HeadlessException
          {
              SwingDemo bugDemo = new SwingDemo();
              bugDemo.setSize(Toolkit.getDefaultToolkit().getScreenSize());
              bugDemo.setLocation(0, 0);
              bugDemo.setVisible(true);
          }

          private void jbInit() throws Exception
          {
              this.setDefaultCloseOperation(EXIT_ON_CLOSE);
              this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
              jScrollPane1.getViewport().add(table, null);
          }

      }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Use the 1.4.2 JVM

      Release Regression From : 5.0
      The above release value was the last known release where this
      bug was known to work. Since then there has been a regression.
      ###@###.### 2005-05-16 06:48:15 GMT

      Attachments

        Issue Links

          Activity

            People

              shickeysunw Shannon Hickey (Inactive)
              jssunw Jitender S (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: