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 Agetian » 16 Dec 2016, 19:43
Ok, there was an issue with Slave of Bolas indeed, it crashed even when looked up in a deck editor. I fixed it (r32713). This should also address your other issue mentioned (with the crash upon a match start).Kclone wrote:Well he does have a lot of control-gaining abilities in the deck. Slave of bolas, control magic, nicol bolas, dragonlord silumgar. But it has crashed before the AI had mana to cast the abilities. I don't know if that matters? My best guess is actually Slave of Bolas now since I haven't seen AI ever cast it.
EDIT: I think I found where to download the new revisions (so I was a big dummy not looking hard enough)
- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by Kclone » 16 Dec 2016, 19:47
Awesome, thanks. I'll try that out when it's up. I did try the r32712 build and it crashed at the start of a match. (ps sorry about the multiple EDITS on last post)Agetian wrote:Ok, there was an issue with Slave of Bolas indeed, it crashed even when looked up in a deck editor. I fixed it (r32713).
- Agetian
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r32712
Operating System: Windows 7 6.1 x86
Java Version: 1.8.0_31 Oracle Corporation
java.lang.NullPointerException
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:236)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:144)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:127)
at forge.game.ability.AbilityFactory.getAbility(AbilityFactory.java:110)
at forge.game.card.CardFactoryUtil.addAbilityFactoryAbilities(CardFactoryUtil.java:1932)
at forge.game.card.CardFactory.readCardFace(CardFactory.java:479)
at forge.game.card.CardFactory.readCard(CardFactory.java:407)
at forge.game.card.CardFactory.getCard(CardFactory.java:260)
at forge.game.card.CardFactory.getCard(CardFactory.java:255)
at forge.game.card.Card.fromPaperCard(Card.java:6930)
at forge.game.Match.preparePlayerLibrary(Match.java:193)
at forge.game.Match.prepareAllZones(Match.java:257)
at forge.game.Match.startGame(Match.java:83)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Re: Bug Reports (snapshot builds)
by Kclone » 16 Dec 2016, 19:58
Match starts up fine in r32713. And no crashes yet, thanks for the help!
Re: Bug Reports (snapshot builds)
by Agetian » 16 Dec 2016, 20:01
No problem, glad it works!Kclone wrote:Match starts up fine in r32713. And no crashes yet, thanks for the help!

- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by Ldcs8T4EAnj8h5ZMD8rf » 17 Dec 2016, 01:04
r32704: Achievement Bug
So I won a game of BFZ Sealed through Felidar Sovereign's alternate win condition and got the Mythic Hellbent Achievement. You can see behind the Player Won overlay in the screenshot that the AI has cards on the field and the player does not. Obviously I had at least Felidar Sovereign on the field as I won through its trigger.
So I won a game of BFZ Sealed through Felidar Sovereign's alternate win condition and got the Mythic Hellbent Achievement. You can see behind the Player Won overlay in the screenshot that the AI has cards on the field and the player does not. Obviously I had at least Felidar Sovereign on the field as I won through its trigger.
- Ldcs8T4EAnj8h5ZMD8rf
- Posts: 36
- Joined: 13 Nov 2015, 15:36
- Has thanked: 1 time
- Been thanked: 2 times
Re: Bug Reports (snapshot builds)
by Xitax » 17 Dec 2016, 02:08
I had the same issue when I won with Hedron Alignment. Somehow the library/graveyard/hand/exile is seen as empty when it checks.
Re: Bug Reports (snapshot builds)
by stormcat » 17 Dec 2016, 02:22
:r32713
When AI plays Memory Jar, this message shown in log.
Memory Jar - [Couldn't add to stack, failed to target]- ~(Card Text)
When AI plays Memory Jar, this message shown in log.
Memory Jar - [Couldn't add to stack, failed to target]- ~(Card Text)
Re: Bug Reports (snapshot builds)
by azaleth » 17 Dec 2016, 04:51
Just built monistary and dredge decks to test against ai, but keep getting error when trying to run one AI, other other human:
Description: [describe what you were doing when the crash occurred]
Description: [describe what you were doing when the crash occurred]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Windows 7 6.1 x86
Java Version: 1.8.0_111 Oracle Corporation
java.lang.NullPointerException
at forge.game.spellability.SpellAbilityRestriction.checkZoneRestrictions(SpellAbilityRestriction.java:229)
at forge.game.spellability.SpellAbilityRestriction.canPlay(SpellAbilityRestriction.java:493)
at forge.game.spellability.Spell.canPlay(Spell.java:102)
at forge.game.spellability.SpellAbilityView.updateCanPlay(SpellAbilityView.java:57)
at forge.game.spellability.SpellAbility.setActivatingPlayer(SpellAbility.java:311)
at forge.game.spellability.SpellAbilityRestriction.canPlay(SpellAbilityRestriction.java:477)
at forge.game.spellability.Spell.canPlay(Spell.java:102)
at forge.game.spellability.SpellAbilityView.updateCanPlay(SpellAbilityView.java:57)
at forge.game.spellability.SpellAbility.setActivatingPlayer(SpellAbility.java:311)
at forge.game.card.CardFactory.copySpellAbility(CardFactory.java:646)
at forge.game.spellability.SpellAbility.copy(SpellAbility.java:679)
at forge.game.card.CardFactoryUtil.makeAltCostAbility(CardFactoryUtil.java:3747)
at forge.game.card.CardFactoryUtil.setupKeywordedAbilities(CardFactoryUtil.java:2538)
at forge.game.card.CardFactory.buildAbilities(CardFactory.java:350)
at forge.game.card.CardFactory.getCard(CardFactory.java:257)
at forge.game.card.CardFactory.getCard(CardFactory.java:249)
at forge.game.card.Card.fromPaperCard(Card.java:6892)
at forge.game.Match.preparePlayerLibrary(Match.java:193)
at forge.game.Match.prepareAllZones(Match.java:257)
at forge.game.Match.startGame(Match.java:83)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- azaleth
- Posts: 8
- Joined: 31 Oct 2016, 18:59
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Agetian » 17 Dec 2016, 05:02
Some additional details would be very nice (what card you are trying to play when this happens, in particular). Also, looks like you may not be using the latest snapshot, since the line at which the NPE ensues is a null check inside an if statement, which can't NPE all by itself. Please update to the latest trunk build if possible (if impossible, please at least specify the exact revision number you're using).azaleth wrote:Just built monistary and dredge decks to test against ai, but keep getting error when trying to run one AI, other other human:
Description: [describe what you were doing when the crash occurred]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Windows 7 6.1 x86
Java Version: 1.8.0_111 Oracle Corporation
java.lang.NullPointerException
at forge.game.spellability.SpellAbilityRestriction.checkZoneRestrictions(SpellAbilityRestriction.java:229)
at forge.game.spellability.SpellAbilityRestriction.canPlay(SpellAbilityRestriction.java:493)
at forge.game.spellability.Spell.canPlay(Spell.java:102)
at forge.game.spellability.SpellAbilityView.updateCanPlay(SpellAbilityView.java:57)
at forge.game.spellability.SpellAbility.setActivatingPlayer(SpellAbility.java:311)
at forge.game.spellability.SpellAbilityRestriction.canPlay(SpellAbilityRestriction.java:477)
at forge.game.spellability.Spell.canPlay(Spell.java:102)
at forge.game.spellability.SpellAbilityView.updateCanPlay(SpellAbilityView.java:57)
at forge.game.spellability.SpellAbility.setActivatingPlayer(SpellAbility.java:311)
at forge.game.card.CardFactory.copySpellAbility(CardFactory.java:646)
at forge.game.spellability.SpellAbility.copy(SpellAbility.java:679)
at forge.game.card.CardFactoryUtil.makeAltCostAbility(CardFactoryUtil.java:3747)
at forge.game.card.CardFactoryUtil.setupKeywordedAbilities(CardFactoryUtil.java:2538)
at forge.game.card.CardFactory.buildAbilities(CardFactory.java:350)
at forge.game.card.CardFactory.getCard(CardFactory.java:257)
at forge.game.card.CardFactory.getCard(CardFactory.java:249)
at forge.game.card.Card.fromPaperCard(Card.java:6892)
at forge.game.Match.preparePlayerLibrary(Match.java:193)
at forge.game.Match.prepareAllZones(Match.java:257)
at forge.game.Match.startGame(Match.java:83)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- Agetian
Last edited by Agetian on 17 Dec 2016, 05:08, edited 1 time in total.
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by Agetian » 17 Dec 2016, 05:07
This card is marked RemAIDeck, which means the AI currently does not know how to properly activate its ability (and when, too).stormcat wrote::r32713
When AI plays Memory Jar, this message shown in log.
Memory Jar - [Couldn't add to stack, failed to target]- ~(Card Text)
All sorts of weird stuff can happen when an AI tries to play a RemAIDeck card (depending on the exact card it can range from suboptimal and random use of the ability [the most usual scenario] to the complete inability to cast or activate the card or failing to specify legal targets and other stuff).
- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by azaleth » 17 Dec 2016, 05:08
My apologies. Forge Beta: 10-26-2016 ver 1.5.57.
The moment I click start, the error occurs. The duel does not load. I have attempted each deck against random others, swapping AI / Human decks, etc. This only occurs on my vintage decks.
The moment I click start, the error occurs. The duel does not load. I have attempted each deck against random others, swapping AI / Human decks, etc. This only occurs on my vintage decks.
- azaleth
- Posts: 8
- Joined: 31 Oct 2016, 18:59
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by azaleth » 17 Dec 2016, 05:10
My apologies. Forge Beta: 10-26-2016 ver 1.5.57.Agetian wrote:Some additional details would be very nice (what card you are trying to play when this happens, in particular). Also, looks like you may not be using the latest snapshot, since the line at which the NPE ensues is a null check inside an if statement, which can't NPE all by itself. Please update to the latest trunk build if possible (if impossible, please at least specify the exact revision number you're using).azaleth wrote:Just built monistary and dredge decks to test against ai, but keep getting error when trying to run one AI, other other human:
Description: [describe what you were doing when the crash occurred]
- NullPointerException | Open
- Code: Select all
Forge Version: 1.5.58-SNAPSHOT-r-1
Operating System: Windows 7 6.1 x86
Java Version: 1.8.0_111 Oracle Corporation
java.lang.NullPointerException
at forge.game.spellability.SpellAbilityRestriction.checkZoneRestrictions(SpellAbilityRestriction.java:229)
at forge.game.spellability.SpellAbilityRestriction.canPlay(SpellAbilityRestriction.java:493)
at forge.game.spellability.Spell.canPlay(Spell.java:102)
at forge.game.spellability.SpellAbilityView.updateCanPlay(SpellAbilityView.java:57)
at forge.game.spellability.SpellAbility.setActivatingPlayer(SpellAbility.java:311)
at forge.game.spellability.SpellAbilityRestriction.canPlay(SpellAbilityRestriction.java:477)
at forge.game.spellability.Spell.canPlay(Spell.java:102)
at forge.game.spellability.SpellAbilityView.updateCanPlay(SpellAbilityView.java:57)
at forge.game.spellability.SpellAbility.setActivatingPlayer(SpellAbility.java:311)
at forge.game.card.CardFactory.copySpellAbility(CardFactory.java:646)
at forge.game.spellability.SpellAbility.copy(SpellAbility.java:679)
at forge.game.card.CardFactoryUtil.makeAltCostAbility(CardFactoryUtil.java:3747)
at forge.game.card.CardFactoryUtil.setupKeywordedAbilities(CardFactoryUtil.java:2538)
at forge.game.card.CardFactory.buildAbilities(CardFactory.java:350)
at forge.game.card.CardFactory.getCard(CardFactory.java:257)
at forge.game.card.CardFactory.getCard(CardFactory.java:249)
at forge.game.card.Card.fromPaperCard(Card.java:6892)
at forge.game.Match.preparePlayerLibrary(Match.java:193)
at forge.game.Match.prepareAllZones(Match.java:257)
at forge.game.Match.startGame(Match.java:83)
at forge.match.HostedMatch$2.run(HostedMatch.java:220)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
- Agetian
The moment I click start, the error occurs. The duel does not load. I have attempted each deck against random others, swapping AI / Human decks, etc. This only occurs on my vintage decks.
- azaleth
- Posts: 8
- Joined: 31 Oct 2016, 18:59
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Agetian » 17 Dec 2016, 05:11
Can you then please post a full deck list that crashes for you on load?azaleth wrote:My apologies. Forge Beta: 10-26-2016 ver 1.5.57.
The moment I click start, the error occurs. The duel does not load. I have attempted each deck against random others, swapping AI / Human decks, etc. This only occurs on my vintage decks.
Oh, and by the way, for beta reports, please use the appropriate thread in the future: viewtopic.php?f=26&t=19410 This thread is for the bleeding edge SVN build reports. Thanks.

- Agetian
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by azaleth » 17 Dec 2016, 05:17
Thank you. Updating to the latest release resolved the issue. ~Cheers.Chris H. wrote:This topic is for reporting bugs found in snapshot builds.`Theoretically, people using snapshots/SVNs should be using the issue tracker http://cardforge.org/bugz if there isn't a specific thread like there usually is for larger features.
Our users and testers can report bugs here when using a snapshot build instead of using the issue tracker. Please do not use this topic to report bugs found in a beta release.
Your bug report should include the file name of the snapshot build that you were using at the time that the bug was noticed. Example:
forge-1.2.3-20120202.002432-13-osx
or
forge-1.2.3-20120202.002432-13
You do not need to include the archive extension (.tar.bz2).
Your bug report should also include the crash report if one was generated. Please place this crash report inside of a code or spoiler block as it makes it easier to read.
Thank you.
- azaleth
- Posts: 8
- Joined: 31 Oct 2016, 18:59
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Agetian » 17 Dec 2016, 05:28
Hmm, this is an unusual bug. Only seems to happen with certain alt. win condition cards too (Felidar Sovereign, Hedron Alignment, possibly something else), other stuff works fine (e.g. Door to Nothingness). All the alt. win conditions are checked together in a way that's not really any different between e.g. the Door and the Sovereign. Can't quite understand why this is happening yet (except I have a rough idea that for some reason the check for those particular achievements happens after the game state is already partially changed and the winning player's zones are cleared, but why this is happening is a bit of a mystery for me yet, except unless it's some kind of a weird threading issue?...).Ldcs8T4EAnj8h5ZMD8rf wrote:r32704: Achievement Bug
So I won a game of BFZ Sealed through Felidar Sovereign's alternate win condition and got the Mythic Hellbent Achievement. You can see behind the Player Won overlay in the screenshot that the AI has cards on the field and the player does not. Obviously I had at least Felidar Sovereign on the field as I won through its trigger.
P.S. It looks like it *may* in fact be some kind of a threading issue (a race condition of some sort?) since sometimes when I get those alt. win condition achievements in my testing, the game would sometimes hang (lock up) completely while awarding the achievements to me, and at other times it would work fine.
P.P.S. If anyone good with this type of stuff would be willing to take a look, you'd need to disable the block of code at AchievementCollection.java:39-42 to make the game award achievements when using the dev mode.
EDIT 1: While I haven't yet been able to figure out why the game is registering some alt.win conditions as Hellbent (Mythic), I was able to pinpoint something interesting: removing the requirement to execute the achievement check in the game thread makes the game stop hanging on win for me. Was there a reason this was delegated to the game thread in the first place? :/ And should it stay that way or can we get rid of the game thread call to avoid locking up the game? (This seems to be related to the "locking up" part: viewtopic.php?f=26&t=18982 )
- Agetian
Last edited by Agetian on 17 Dec 2016, 05:42, edited 2 times in total.
- Agetian
- Programmer
- Posts: 3487
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Who is online
Users browsing this forum: No registered users and 25 guests