magefree / magefree/mage

Deck editor: java.lang.ArrayIndexOutOfBoundsException If Set filter is canceled

Open
#6,374 0 comments 0 reactions 0 assignees View on GitHub
bug GUI
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:
![Deck Editor set filter stuck](https://user-images.githubusercontent.com/2143820/77447133-999c7380-6def-11ea-8c85-bfee2feaf682.png)

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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.