Bug Reports (snapshot builds)
Post MTG Forge Related Programming Questions Here
Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins
Re: Bug Reports (snapshot builds)
by friarsol » 05 Apr 2013, 21:59
r20830
When winning a Challenge against the Green Dungeon Crawler I got this crash and I didn't seem to be able to do anything else, even though I just won the Match.
I also got this. I think I was trying to declare an attacker, but I'm not exactly sure:
Description: [describe what you were doing when the crash occurred]
When winning a Challenge against the Green Dungeon Crawler I got this crash and I didn't seem to be able to do anything else, even though I just won the Match.
- IllegalStateException | Open
- Code: Select all
Forge Version: SVN
Operating System: Windows 7 6.1 x86
Java Version: 1.6.0_30 Sun Microsystems Inc.
java.lang.IllegalStateException: forge.gui.ListChooser.<init> must be accessed from the event dispatch thread.
at forge.FThreads.assertExecutedByEdt(FThreads.java:51)
at forge.gui.ListChooser.<init>(ListChooser.java:89)
at forge.gui.match.QuestWinLose.awardBooster(QuestWinLose.java:563)
at forge.gui.match.QuestWinLose.populateCustomPanel(QuestWinLose.java:214)
at forge.gui.match.ViewWinLose.<init>(ViewWinLose.java:129)
at forge.game.MatchController.addGamePlayed(MatchController.java:120)
at forge.game.GameState.setGameOver(GameState.java:305)
at forge.game.GameAction.checkStateEffects(GameAction.java:1078)
at forge.game.phase.PhaseHandler.handleBeginPhase(PhaseHandler.java:349)
at forge.gui.InputProxy$1.run(InputProxy.java:61)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
I also got this. I think I was trying to declare an attacker, but I'm not exactly sure:
Description: [describe what you were doing when the crash occurred]
- RuntimeException | Open
- Code: Select all
Forge Version: SVN
Operating System: Windows 7 6.1 x86
Java Version: 1.6.0_30 Sun Microsystems Inc.
java.lang.RuntimeException: Inputs adding/removal into stack is imbalanced! Check your code again!
at forge.control.input.InputControl.removeInput(InputControl.java:110)
at forge.control.input.InputBase.stop(InputBase.java:63)
at forge.control.input.InputPayManaExecuteCommands.done(InputPayManaExecuteCommands.java:106)
at forge.control.input.InputPayManaBase.checkIfAlredyPaid(InputPayManaBase.java:314)
at forge.control.input.InputPayManaExecuteCommands.showMessage(InputPayManaExecuteCommands.java:137)
at forge.gui.InputProxy$2.run(InputProxy.java:76)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.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)
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Hellfish » 06 Apr 2013, 07:25
Re: IllegalStateException:
Heh, I think Max and I doublefixed that
Max committed just 6 minutes before I did and I missed it.
Heh, I think Max and I doublefixed that

So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Bug Reports (snapshot builds)
by Hellfish » 06 Apr 2013, 07:53
r20840: Cast any Unleash creature (Grim Roustabout, Gore-House Chainwalker...) and choose to apply the replacement effect.
- | Open
- Code: Select all
java.lang.NullPointerException
at forge.card.mana.ManaCostBeingPaid.<init>(ManaCostBeingPaid.java:124)
at forge.card.mana.ManaCostBeingPaid.<init>(ManaCostBeingPaid.java:119)
at forge.game.player.HumanPlayer.playSpellAbilityNoStack(HumanPlayer.java:194)
at forge.game.player.HumanPlayer.playSpellAbilityNoStack(HumanPlayer.java:178)
at forge.card.replacement.ReplacementHandler.executeReplacement(ReplacementHandler.java:243)
at forge.card.replacement.ReplacementHandler.run(ReplacementHandler.java:151)
at forge.card.replacement.ReplacementHandler.run(ReplacementHandler.java:71)
at forge.game.GameAction.changeZone(GameAction.java:179)
at forge.game.GameAction.moveTo(GameAction.java:364)
at forge.game.GameAction.moveTo(GameAction.java:345)
at forge.game.GameAction.moveToPlay(GameAction.java:562)
at forge.game.GameAction.moveTo(GameAction.java:730)
at forge.game.GameAction.moveTo(GameAction.java:707)
at forge.card.spellability.SpellPermanent.resolve(SpellPermanent.java:413)
at forge.game.zone.MagicStack.resolveStack(MagicStack.java:651)
at forge.game.phase.PhaseHandler$1.run(PhaseHandler.java:741)
at forge.game.phase.PhaseHandler.passPriority(PhaseHandler.java:749)
at forge.game.player.PlayerController.passPriority(PlayerController.java:77)
at forge.game.ai.AiController.onPriorityRecieved(AiController.java:816)
at forge.game.ai.AiInputCommon$1.run(AiInputCommon.java:74)
at forge.FThreads$1.run(FThreads.java:113)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Bug Reports (snapshot builds)
by Max mtg » 06 Apr 2013, 08:27
Your code didn't fix it anyway... it was to make GUI call from non-edt thread.Hellfish wrote:Re: IllegalStateException:
Heh, I think Max and I doublefixed thatMax committed just 6 minutes before I did and I missed it.
@Sol, try to reproduce both exceptions now.
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
Re: Bug Reports (snapshot builds)
by Hellfish » 06 Apr 2013, 08:30
Huh, it worked for me with just my fix.Eh, whatever, it works now. 

So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Bug Reports (snapshot builds)
by Max mtg » 06 Apr 2013, 09:00
Sorry, my bad.Hellfish wrote:Huh, it worked for me with just my fix.Eh, whatever, it works now.
You put just the call to showCard() in the block that was to be run from EDT. - so it really worked
I send the whole class there.
So your commit was not bad at all. I'm sorry again. It has been reapplied
Single class for single responsibility.
- Max mtg
- Programmer
- Posts: 1997
- Joined: 02 Jul 2011, 14:26
- Has thanked: 173 times
- Been thanked: 334 times
- swordshine
- Posts: 682
- Joined: 11 Jul 2010, 02:37
- Has thanked: 116 times
- Been thanked: 87 times
Re: Bug Reports (snapshot builds)
by Hellfish » 06 Apr 2013, 09:43
Hey, no worries either way.Like I said, as long as it works, I'm happy.Max mtg wrote:Sorry, my bad.Hellfish wrote:Huh, it worked for me with just my fix.Eh, whatever, it works now.
You put just the call to showCard() in the block that was to be run from EDT. - so it really worked
I send the whole class there.
So your commit was not bad at all. I'm sorry again. It has been reapplied

So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Bug Reports (snapshot builds)
by Hellfish » 06 Apr 2013, 11:44
Description: Suicide attacked a Goblin Arsonist with a Blood Artist out. Chose to put the arsonists ability on the stack first and this appeared after I chose the target for it.
Closing the error report lets me target for the artists ability but then gets stuck "Waiting for actions..."
Description: I think the AI was evaluating an Offering To Asha in it's hand to counter my Goblin Arsonist. I *think* the only untapped lands it had were Wanderwine Hub and Thalakos Lowlands.
Closing the error report lets me target for the artists ability but then gets stuck "Waiting for actions..."
- RuntimeException | Open
- Code: Select all
Forge Version: SVN
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_17 Oracle Corporation
java.lang.RuntimeException: Trying to unlock input which is not locked! Do check when your threads terminate!
at forge.control.input.InputControl.unlock(InputControl.java:207)
at forge.FThreads$1.run(FThreads.java:114)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Description: I think the AI was evaluating an Offering To Asha in it's hand to counter my Goblin Arsonist. I *think* the only untapped lands it had were Wanderwine Hub and Thalakos Lowlands.
- NullPointerException | Open
- Code: Select all
Forge Version: SVN
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_17 Oracle Corporation
java.lang.NullPointerException
at forge.card.spellability.AbilityActivated.canPlay(AbilityActivated.java:84)
at forge.game.ai.ComputerUtilCard$10.apply(ComputerUtilCard.java:886)
at forge.game.ai.ComputerUtilCard$10.apply(ComputerUtilCard.java:1)
at com.google.common.collect.Iterators$8.computeNext(Iterators.java:736)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.Lists.newArrayList(Lists.java:144)
at com.google.common.collect.Lists.newArrayList(Lists.java:125)
at forge.CardLists.filter(CardLists.java:254)
at forge.game.ai.ComputerUtilCard.getUsableManaSources(ComputerUtilCard.java:882)
at forge.card.ability.ai.CounterAi.canPlayAI(CounterAi.java:65)
at forge.card.ability.SpellAbilityAi.canPlayAIWithSubs(SpellAbilityAi.java:16)
at forge.card.ability.SpellApiBased.canPlayAI(SpellApiBased.java:48)
at forge.game.ai.AiController.canPlayAndPayFor(AiController.java:475)
at forge.game.ai.AiController.chooseCounterSpell(AiController.java:414)
at forge.game.ai.AiController.getSpellAbilityToPlay(AiController.java:98)
at forge.game.ai.AiController.playSpellAbilities(AiController.java:862)
at forge.game.ai.AiController.onPriorityRecieved(AiController.java:782)
at forge.game.ai.AiInputCommon$1.run(AiInputCommon.java:74)
at forge.FThreads$1.run(FThreads.java:113)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
So now you're
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
Screaming for the blood of the cookie monster
Evil puppet demon of obesity
Time to change the tune of his fearful ballad
C is for "Lettuce," that's good enough for me
-
Hellfish - Programmer
- Posts: 1297
- Joined: 07 Jun 2009, 10:41
- Location: South of the Pumphouse
- Has thanked: 110 times
- Been thanked: 169 times
Re: Bug Reports (snapshot builds)
by Almeida » 06 Apr 2013, 14:57
i cast Chain Lightning and the effect to pay RR dont work
this copy without pay RR for each player
and Blademane Baku is crashing when try remove the counters
this copy without pay RR for each player
and Blademane Baku is crashing when try remove the counters
-
Almeida - Posts: 41
- Joined: 24 Dec 2011, 04:48
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by friarsol » 06 Apr 2013, 19:01
Ok, I believe these three issues are fixed:friarsol wrote:Adding the ChangeTargets of Counterspells bug here as a reminder:
MagicStack is popping the SA during the resolve instead of during finishResolving. This means you can't target the ChangeTargets SA with the Counterspell below it on the Stack.
Also, I noticed that it lists the CounterSpell in the potential targets which is wrong (a spell can never target itself), and I also noticed the Stack targeting isn't quite right either in this case.
1) Cast a creature.
2) Cast Divination
3) Cast Counterspell countering the creature
4) Cast Swerve targeting Counterspell
When Swerve resolves, you can choose all three spells on the stack. It looks like when we are peeking at the instances of the SAs, the targets that were previously reset are restored due to this action.
1) SAs no longer can target themselves on ChangeTargets
2) SAs can now target the ChangeTargets SA that is resolving
3) SA targets aren't reapplied when starting to ChangeTargets
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Almeida » 06 Apr 2013, 23:51
hey guys
the bug is
I have a Conjure's Closet in play and a Centaur Healer, Acidic Slime, and Sylvan Primordial. The first time i exile a centaur ... its right exile and return in the next turn i try the same and nothing ... same for the other creatures exile the first time and the second don't exile
and Signal The Clans i search for the creatures but nothing happens
the bug is
I have a Conjure's Closet in play and a Centaur Healer, Acidic Slime, and Sylvan Primordial. The first time i exile a centaur ... its right exile and return in the next turn i try the same and nothing ... same for the other creatures exile the first time and the second don't exile
and Signal The Clans i search for the creatures but nothing happens
-
Almeida - Posts: 41
- Joined: 24 Dec 2011, 04:48
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by friarsol » 07 Apr 2013, 03:08
AI is about to attack. He has a 4/4 Demon, and a 3/2 Ogre that can Regenerate
- CanRegenerate NPE | Open
- java.lang.NullPointerException
at forge.card.spellability.AbilityActivated.canPlay(AbilityActivated.java:84)
at forge.game.ai.ComputerUtil.canRegenerate(ComputerUtil.java:708)
at forge.game.ai.ComputerUtilCombat.canDestroyAttacker(ComputerUtilCombat.java:1385)
at forge.game.ai.AiAttackController.shouldAttack(AiAttackController.java:902)
at forge.game.ai.AiAttackController.getAttackers(AiAttackController.java:791)
at forge.game.ai.AiController.declareAttackers(AiController.java:822)
at forge.game.ai.AiController.onPriorityRecieved(AiController.java:803)
at forge.game.ai.AiInputCommon$1.run(AiInputCommon.java:74)
at forge.FThreads$1.run(FThreads.java:113)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- friarsol
- Global Moderator
- Posts: 7593
- Joined: 15 May 2010, 04:20
- Has thanked: 243 times
- Been thanked: 965 times
Re: Bug Reports (snapshot builds)
by Sloth » 07 Apr 2013, 09:21
swordshine wrote:Chain Lightning doesn't work.
Fixed! Thanks swordshine and Almeida.Almeida wrote:i cast Chain Lightning and the effect to pay RR dont work
Fixed! Thanks sol.friarsol wrote:AI is about to attack. He has a 4/4 Demon, and a 3/2 Ogre that can Regenerate
- CanRegenerate NPE | Open
- java.lang.NullPointerException
Fixed! Thanks Hellfish.Hellfish wrote:Description: I think the AI was evaluating an Offering To Asha in it's hand to counter my Goblin Arsonist. I *think* the only untapped lands it had were Wanderwine Hub and Thalakos Lowlands.
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Bug Reports (snapshot builds)
by moomarc » 07 Apr 2013, 13:16
Crash directly after muligan (AI going first). I assume it was trying to reveal Chancellor of the Dross, but other cards in his hand include Woebearer, Soul Shred, Straw Golem and basic lands.
- NullPointerException | Open
- Code: Select all
Forge Version: SVN
Operating System: Windows 7 6.1 x86
Java Version: 1.6.0_35 Sun Microsystems Inc.
java.lang.NullPointerException
at forge.card.mana.ManaCostBeingPaid.applySpellCostChange(ManaCostBeingPaid.java:708)
at forge.game.ai.ComputerUtilMana.calculateManaCost(ComputerUtilMana.java:418)
at forge.game.ai.ComputerUtilMana.payManaCost(ComputerUtilMana.java:60)
at forge.game.ai.ComputerUtilCost.canPayCost(ComputerUtilCost.java:356)
at forge.card.ability.SpellAbilityAi.doTriggerAI(SpellAbilityAi.java:26)
at forge.card.ability.AbilityApiBased.doTrigger(AbilityApiBased.java:72)
at forge.game.GameAction.handleLeylinesAndChancellors(GameAction.java:1449)
at forge.game.MatchController.afterMulligans(MatchController.java:347)
at forge.control.input.InputMulligan$1.run(InputMulligan.java:126)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
-Marc
-
moomarc - Pixel Commander
- Posts: 2091
- Joined: 04 Jun 2010, 15:22
- Location: Johannesburg, South Africa
- Has thanked: 371 times
- Been thanked: 372 times
Who is online
Users browsing this forum: MiguelCax and 35 guests