SYNOPSIS -------- NullPointerException when sorting JTable with empty cell OPERATING SYSTEM ---------------- Reported on RHEL5.1 Reproducible on Windows. Likely platform independent. FULL JDK VERSION ---------------- JDK 7 (tested with b144) Not reproducible with Java 6 REPRODUCTION INSTRUCTIONS ------------------------- 1. Launch SwingSet2 with jar as follows: java -jar %JAVA_HOME%/demo/jfc/SwingSet2/SwingSet2.jar 2. Click JTableDemo Tab and double click on a cell in the "Favorite Number" column and delete the value. 3. Click on the column headers to sort the table. Expected result: No Exceptions should be thrown. Observed result: The following NullPointerException stack trace is printed on the console: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.JTable.columnMoved(JTable.java:4578) at javax.swing.table.DefaultTableColumnModel.fireColumnMoved(DefaultTableColumnModel.java:580) at javax.swing.table.DefaultTableColumnModel.moveColumn(DefaultTableColumnModel.java:190) at javax.swing.plaf.basic.BasicTableHeaderUI$MouseInputHandler.setDraggedDistance(BasicTableHeaderUI.java:293) at javax.swing.plaf.basic.BasicTableHeaderUI$MouseInputHandler.mouseReleased(BasicTableHeaderUI.java:263) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290) at java.awt.Component.processMouseEvent(Component.java:6504) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6269) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4860) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
|