Deck editor: java.lang.ArrayIndexOutOfBoundsException If Set filter is canceled
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 940
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 160
Description
XMage version: 1.4.42V6
Deck Editor, Filter sets window: I wanted to filter the set list for "Judge" promo sets. Then the filter window stuck with the entered filter. It doesn’t show the filter value in the edit box, but the window only shows the 2 sets containing "Judge". Screenshot:

This error happens, if you Cancel the filter with a non-empty filter text.
Exception in the log:
```
java.lang.ArrayIndexOutOfBoundsException: 90 >= 2
at java.util.Vector.elementAt(Vector.java:477)
at javax.swing.DefaultListModel.getElementAt(DefaultListModel.java:89)
at mage.client.dialog.CheckBoxList$CheckBoxListModel.setChecked(CheckBoxList.java:483)
at mage.client.dialog.CheckBoxList.setChecked(CheckBoxList.java:639)
at mage.client.deckeditor.CardSelector.cbExpansionSetActionPerformed(CardSelector.java:1220)
at mage.client.deckeditor.CardSelector.access$800(CardSelector.java:49)
at mage.client.deckeditor.CardSelector$8.actionPerformed(CardSelector.java:671)
at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1258)
at javax.swing.JComboBox.setSelectedItem(JComboBox.java:586)
at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:622)
at mage.client.deckeditor.CardSelector.btnExpansionSearchActionPerformed(CardSelector.java:1418)
at mage.client.deckeditor.CardSelector.access$1000(CardSelector.java:49)
at mage.client.deckeditor.CardSelector$10.actionPerformed(CardSelector.java:696)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
```
Steps to reproduce:
- Start Client
- Hit Cancel (Connection dialog)
- Click Deck Editor
- Click :mag: Symbol next to the Set drop down list
- Enter text "Ju"
- Mark one set, for example "Judgement". IMPORTANT.
- Click `Cancel`. IMPORTANT.
- Exception is thrown in the log.
- The Search is stuck with the search result of step 5.
Alternative steps:
- Start Client
- Hit Cancel (Connection dialog)
- Click Deck Editor
- Click :mag: Symbol next to the Set drop down list
- Enter text "Ju"
- Do not mark any set
- Click `Cancel`.
- Click :mag: Symbol next to the Set drop down list
- Notice that the search input field is empty, but the cancelled filter is active nonetheless.
- Click `Cancel`.
- Same result as above.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.