Crash on import deck in Sealed Deck Editor
Posted: 29 Oct 2017, 18:33
by hidalgo
Hi! I found that Forge supports Ctrl+C on card list in List View mode.
I tried to make use of it by copying 90 cards from boosters in Sealed Deck Editor to my deck building application (Mtgdb.Gui)
After I've finished buiding the deck, I tried to import the result using Import in Forge Deck Edtior.
Unfortunately in Sealed Deck mode Forge does not support import and crashes.
Reproduced in versions 1.6.3-r-1, 1.6.4-r-1
Steps to reproduce:
I tried to make use of it by copying 90 cards from boosters in Sealed Deck Editor to my deck building application (Mtgdb.Gui)
After I've finished buiding the deck, I tried to import the result using Import in Forge Deck Edtior.
Unfortunately in Sealed Deck mode Forge does not support import and crashes.
Reproduced in versions 1.6.3-r-1, 1.6.4-r-1
Steps to reproduce:
- Start creating deck in Sealed Deck format: Home -> Sanctioned Formats -> Sealed Deck -> Build New Sealed Deck
- In Sealed Deck Editor: Import -> Paste -> Import Deck -> Replace
- Pasted deck | Open
- 2 Shadowstorm Vizier
1 Horror of the Broken Lands
1 Archfiend of Ifnir
1 Seeker of Insight
1 Bone Picker
1 Grim Strider
1 Pitiless Vizier
1 Dread Wanderer
1 Djeru's Resolve
1 Renewed Faith
1 Winged Shepherd
1 Shimmerscale Drake
1 River Serpent
1 Censor
2 Wander in Death
1 Shadow of the Grave
1 Cartouche of Solidarity
1 Cartouche of Knowledge
1 Compulsory Rest
1 Splendid Agony
1 Illusory Wrappings
1 Luxa River Shrine
2 Evolving Wilds
4 Plains
5 Island
5 Swamp
The pasted cards were successfully recognized, they match those in Sideboard available for Sealed deck building. - Result:
- ClassCastException | Open
- Code: Select all
Forge Version: 1.6.4-r-1
Operating System: Windows 7 6.1 amd64
Java Version: 1.8.0_141 Oracle Corporation
java.lang.ClassCastException: forge.deck.Deck cannot be cast to forge.deck.DeckGroup
at forge.screens.deckeditor.controllers.CEditorLimited.getSelectedDeck(CEditorLimited.java:113)
at forge.screens.deckeditor.controllers.CEditorLimited.resetTables(CEditorLimited.java:166)
at forge.screens.deckeditor.controllers.DeckController.setModel(DeckController.java:89)
at forge.screens.deckeditor.controllers.DeckController.setModel(DeckController.java:84)
at forge.screens.deckeditor.DeckImport$2.actionPerformed(DeckImport.java:150)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.WaitDispatchSupport$2.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.awt.WaitDispatchSupport$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(Unknown Source)
at java.awt.Dialog.show(Unknown Source)
at java.awt.Component.show(Unknown Source)
at java.awt.Component.setVisible(Unknown Source)
at java.awt.Window.setVisible(Unknown Source)
at java.awt.Dialog.setVisible(Unknown Source)
at forge.view.FDialog.setVisible(FDialog.java:201)
at forge.screens.deckeditor.controllers.CCurrentDeck.importDeck(CCurrentDeck.java:127)
at forge.screens.deckeditor.controllers.CCurrentDeck.access$400(CCurrentDeck.java:32)
at forge.screens.deckeditor.controllers.CCurrentDeck$7.run(CCurrentDeck.java:104)
at forge.toolbox.FLabel._doMouseAction(FLabel.java:314)
at forge.toolbox.FLabel.access$1300(FLabel.java:55)
at forge.toolbox.FLabel$6.onLeftClick(FLabel.java:352)
at forge.toolbox.FMouseAdapter.mouseReleased(FMouseAdapter.java:246)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)