Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.gui > #4942
| From | Novice <novice@example..com> |
|---|---|
| Newsgroups | comp.lang.java.gui |
| Subject | Strange JTable issue in Sun's Java code |
| Date | 2012-01-16 18:34 +0000 |
| Organization | Your Company |
| Message-ID | <Xns9FDC8ADEB9988jpnasty@94.75.214.39> (permalink) |
I'm getting an exception I don't understand when I attempt to delete all
the data in a small Jtable (46 rows, 3 columns).
Here's the stacktrace; the "rowCount = 45" is a diagnostic I'm writing:
========================================================================
rowCount = 45
Exception in thread "AWT-EventQueue-0"
java.lang.ArrayIndexOutOfBoundsException: 0
at javax.swing.SizeSequence.removeEntries(SizeSequence.java:383)
at javax.swing.JTable.tableRowsDeleted(JTable.java:4500)
at javax.swing.JTable.tableChanged(JTable.java:4399)
at javax.swing.table.AbstractTableModel.fireTableChanged
(AbstractTableModel.java:280)
at javax.swing.table.AbstractTableModel.fireTableRowsDeleted
(AbstractTableModel.java:245)
at hang.PhraseListTableModel.deleteAllRows
(PhraseListTableModel.java:634)
at hang.PhraseListEditor.actionPerformed(PhraseListEditor.java:625)
at javax.swing.AbstractButton.fireActionPerformed
(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed
(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed
(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed
(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick
(BasicMenuItemUI.java:1223)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased
(BasicMenuItemUI.java:1264)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent
(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent
(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters
(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter
(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy
(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents
(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
========================================================================
The crash is happening in the Java code but here's my deleteAllRows() so
that you can see nothing very exotic is happening:
========================================================================
public int deleteAllRows() {
String METHOD_NAME = "deleteAllRows()"; //$NON-NLS-1$
if (DEBUG) this.logger.entering(this.CLASS_NAME, METHOD_NAME);
int rowCount = getRowCount();
//FIXME: remove the next line
System.err.println("rowCount = " + rowCount); //temporary
this.phraseList.removeAllElements();
fireTableRowsDeleted(1, rowCount);
return rowCount;
}
========================================================================
When I debug the code and follow it into the Java code, some odd things
are happening. First, the actual fireTableRowsDeleted() method shows a
valid value for the "this" parameter but displays the following for each
of the other parameters when I inspect them via the Eclipse debugger:
"firstRow [or whatever] cannot be resolved to a variable". I don't recall
ever seeing that before in debugging a program. Then, when I proceed
beyond that to the removeEntries(int, int) method, things continue to be
strange. When I get to line 383 of that method, I get the same "cannot be
resolved to a variable" notation on EVERY variable in that line, even
variable i, which has just been explicitly set to 0.
Here's the complete code for this method:
========================================================================
/**
* Removes a contiguous group of entries
* from this <code>SizeSequence</code>.
* Note that the values of <code>start</code> and
* <code>length</code> must satisfy the following
* conditions: <code>(0 <= start < getSizes().length)
* AND (length >= 0)</code>. If these conditions are
* not met, the behavior is unspecified and an exception
* may be thrown.
*
* @param start the index of the first entry to be removed
* @param length the number of entries to be removed
*/
public void removeEntries(int start, int length) {
int sizes[] = getSizes();
int end = start + length;
int n = a.length - length;
a = new int[n];
for (int i = 0; i < start; i++) {
a[i] = sizes[i] ;
}
for (int i = start; i < n; i++) {
a[i] = sizes[i+length] ;
}
setSizes(a);
}
========================================================================
I've never encountered a situation like this before. It feels like the
problem is in the Java code - or Eclipse - and I'm not sure what to do
about that. Is this nature's way of telling me that I need a newer Java
JDK? I'm using Java 1.6.18. If not, what should I be doing?
--
Novice
Back to comp.lang.java.gui | Previous | Next — Next in thread | Find similar
Strange JTable issue in Sun's Java code Novice <novice@example..com> - 2012-01-16 18:34 +0000
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-16 14:48 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-16 14:55 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-16 15:19 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-16 15:31 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-16 17:57 -0500
Re: Strange JTable issue in Sun's Java code Novice <novice@example..com> - 2012-01-17 01:48 +0000
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-17 03:22 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-17 03:29 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-17 03:49 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-17 03:55 -0500
Re: Strange JTable issue in Sun's Java code Novice <novice@example..com> - 2012-01-17 22:21 +0000
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-17 18:18 -0500
Re: Strange JTable issue in Sun's Java code Jeff Higgins <jeff@invalid.invalid> - 2012-01-17 20:56 -0500
Re: Strange JTable issue in Sun's Java code Novice <novice@example..com> - 2012-01-18 05:24 +0000
Re: Strange JTable issue in Sun's Java code Novice <novice@example..com> - 2012-01-18 17:40 +0000
Re: Strange JTable issue in Sun's Java code Novice <novice@example..com> - 2012-01-18 05:37 +0000
Re: Strange JTable issue in Sun's Java code Christian Kaufhold <chka@ucuri.chka.de> - 2012-01-19 21:00 +0100
csiph-web