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 JuzamLover » 16 Jun 2013, 15:29
Description: Playing Forge on Ubuntu-Wine. Since various previous versions, when I launch Forge it begins loading and when it reaches "Opening Main Window" the crash appears:

EDIT: Done... Removed Gauntlet saved data and it worked!!
- ConversionException | Open
- Code: Select all
Forge Version: 1.4.2-SNAPSHOT-r22099
Operating System: Windows XP 5.1 x86
Java Version: 1.7.0_21 Oracle Corporation
EDT > Error loading Gauntlet Data
com.thoughtworks.xstream.converters.ConversionException: Asked for 'Bronze Horse' from 'TSB' #0: db didn't find that copy. : Asked for 'Bronze Horse' from 'TSB' #0: db didn't find that copy.
---- Debugging information ----
message : Asked for 'Bronze Horse' from 'TSB' #0: db didn't find that copy.
cause-exception : java.util.NoSuchElementException
cause-message : Asked for 'Bronze Horse' from 'TSB' #0: db didn't find that copy.
class : forge.deck.CardPool
required-type : forge.deck.CardPool
converter-type : forge.gauntlet.GauntletIO$DeckSectionToXml
path : /forge.gauntlet.GauntletData/decks/forge.deck.Deck[8]/parts/entry/forge.deck.CardPool/card[13]
line number : 342
class[1] : java.util.EnumMap
converter-type[1] : com.thoughtworks.xstream.converters.enums.EnumMapConverter
class[2] : forge.deck.Deck
converter-type[2] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[3] : java.util.ArrayList
converter-type[3] : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[4] : forge.gauntlet.GauntletData
version : 1.4.2-SNAPSHOT-r22099
-------------------------------
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryIntoMap(MapConverter.java:90)
at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:78)
at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:72)
at com.thoughtworks.xstream.converters.enums.EnumMapConverter.unmarshal(EnumMapConverter.java:89)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1058)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1042)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:913)
at forge.gauntlet.GauntletIO.loadGauntlet(GauntletIO.java:97)
at forge.gui.home.gauntlet.CSubmenuGauntletQuick.updateData(CSubmenuGauntletQuick.java:74)
at forge.gui.home.gauntlet.CSubmenuGauntletQuick.initialize(CSubmenuGauntletQuick.java:62)
at forge.view.FView.initialize(FView.java:130)
at forge.control.FControl$6.run(FControl.java:208)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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$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)
Caused by: java.util.NoSuchElementException: Asked for 'Bronze Horse' from 'TSB' #0: db didn't find that copy.
at forge.card.CardDb.getCard(CardDb.java:291)
at forge.gauntlet.GauntletIO$DeckSectionToXml.readCardPrinted(GauntletIO.java:186)
at forge.gauntlet.GauntletIO$DeckSectionToXml.unmarshal(GauntletIO.java:158)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
... 57 more

EDIT: Done... Removed Gauntlet saved data and it worked!!
Last edited by JuzamLover on 17 Jun 2013, 19:04, edited 1 time in total.
Sengir Clan
The night is ours 


-
JuzamLover - Posts: 4
- Joined: 14 Mar 2011, 04:44
- Location: Madrid
- Has thanked: 0 time
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by xbon » 16 Jun 2013, 20:21
Description: Attacked with Elvish Eulogist opp had untapped Bog Rats
- NullPointerException | Open
- Code: Select all
Forge Version: 1.4.2-SNAPSHOT-r22099
Operating System: Windows 8 6.2 amd64
Java Version: 1.7.0_13 Oracle Corporation
java.lang.NullPointerException
at forge.game.phase.Combat.getDefenderByAttacker(Combat.java:275)
at forge.game.phase.Combat.getDefenderPlayerByAttacker(Combat.java:279)
at forge.game.phase.Combat.getDefendingPlayerRelatedTo(Combat.java:476)
at forge.Card.hasProperty(Card.java:5208)
at forge.Card.isValid(Card.java:5100)
at forge.GameEntity.isValid(GameEntity.java:295)
at forge.CardPredicates$12.apply(CardPredicates.java:143)
at forge.CardPredicates$12.apply(CardPredicates.java:1)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:702)
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:232)
at forge.CardLists.getValidCards(CardLists.java:193)
at forge.card.TriggerReplacementBase.meetsCommonRequirements(TriggerReplacementBase.java:227)
at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:265)
at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:210)
at forge.game.ai.ComputerUtilCombat.combatTriggerWillTrigger(ComputerUtilCombat.java:596)
at forge.game.ai.ComputerUtilCombat.checkDestroyBlockerTrigger(ComputerUtilCombat.java:1281)
at forge.game.ai.ComputerUtilCombat.canDestroyBlocker(ComputerUtilCombat.java:1570)
at forge.game.ai.ComputerUtilBlock.getSafeBlockers(ComputerUtilBlock.java:234)
at forge.game.ai.ComputerUtilBlock.makeGoodBlocks(ComputerUtilBlock.java:355)
at forge.game.ai.ComputerUtilBlock.getBlockers(ComputerUtilBlock.java:834)
at forge.game.ai.AiController.declateBlockers(AiController.java:722)
at forge.game.player.PlayerControllerAi.declareBlockers(PlayerControllerAi.java:317)
at forge.game.phase.PhaseHandler.declareBlockersTurnBaseActions(PhaseHandler.java:524)
at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:321)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:869)
at forge.game.GameAction.startGame(GameAction.java:1422)
at forge.game.Match$1.run(Match.java:105)
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 jsv » 17 Jun 2013, 04:33
I have several gauntlets in progress. No matter which one I select, when I press "Start" it's always the first one in the list that gets loaded.
Re: Bug Reports (snapshot builds)
by jsv » 17 Jun 2013, 11:44
The Infestation preconstructed deck has wrong set info (AVR in the file, should be 7ED).
Re: Bug Reports (snapshot builds)
by SirFunchalot » 17 Jun 2013, 14:59
Opponent controls no creatures.
My field is an Olivia Voldaren with 1 +1/+1 counter and an Aetherling that is controlled by me via Olivia from my opponent. They activate Supreme Verdict and Aetherling is not destroyed yet goes to the opponent's side of the field. This should not happen as Aetherling's blink effect was not activated and it is still a creature on the battlefield during the resolution of Supreme Verdict and thusly should die.
My field is an Olivia Voldaren with 1 +1/+1 counter and an Aetherling that is controlled by me via Olivia from my opponent. They activate Supreme Verdict and Aetherling is not destroyed yet goes to the opponent's side of the field. This should not happen as Aetherling's blink effect was not activated and it is still a creature on the battlefield during the resolution of Supreme Verdict and thusly should die.
- SirFunchalot
- Posts: 15
- Joined: 23 Apr 2012, 02:50
- Has thanked: 3 times
- Been thanked: 0 time
Re: Bug Reports (snapshot builds)
by Sloth » 17 Jun 2013, 15:40
Fixed! Thanks xbon.xbon wrote:Description: Attacked with Elvish Eulogist opp had untapped Bog Rats
- NullPointerException | Open
- Code: Select all
Forge Version: 1.4.2-SNAPSHOT-r22099
Operating System: Windows 8 6.2 amd64
Java Version: 1.7.0_13 Oracle Corporation
java.lang.NullPointerException
at forge.game.phase.Combat.getDefenderByAttacker(Combat.java:275)
at forge.game.phase.Combat.getDefenderPlayerByAttacker(Combat.java:279)
at forge.game.phase.Combat.getDefendingPlayerRelatedTo(Combat.java:476)
at forge.Card.hasProperty(Card.java:5208)
at forge.Card.isValid(Card.java:5100)
at forge.GameEntity.isValid(GameEntity.java:295)
at forge.CardPredicates$12.apply(CardPredicates.java:143)
at forge.CardPredicates$12.apply(CardPredicates.java:1)
at com.google.common.collect.Iterators$7.computeNext(Iterators.java:702)
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:232)
at forge.CardLists.getValidCards(CardLists.java:193)
at forge.card.TriggerReplacementBase.meetsCommonRequirements(TriggerReplacementBase.java:227)
at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:265)
at forge.card.trigger.Trigger.requirementsCheck(Trigger.java:210)
at forge.game.ai.ComputerUtilCombat.combatTriggerWillTrigger(ComputerUtilCombat.java:596)
at forge.game.ai.ComputerUtilCombat.checkDestroyBlockerTrigger(ComputerUtilCombat.java:1281)
at forge.game.ai.ComputerUtilCombat.canDestroyBlocker(ComputerUtilCombat.java:1570)
at forge.game.ai.ComputerUtilBlock.getSafeBlockers(ComputerUtilBlock.java:234)
at forge.game.ai.ComputerUtilBlock.makeGoodBlocks(ComputerUtilBlock.java:355)
at forge.game.ai.ComputerUtilBlock.getBlockers(ComputerUtilBlock.java:834)
at forge.game.ai.AiController.declateBlockers(AiController.java:722)
at forge.game.player.PlayerControllerAi.declareBlockers(PlayerControllerAi.java:317)
at forge.game.phase.PhaseHandler.declareBlockersTurnBaseActions(PhaseHandler.java:524)
at forge.game.phase.PhaseHandler.onPhaseBegin(PhaseHandler.java:321)
at forge.game.phase.PhaseHandler.startFirstTurn(PhaseHandler.java:869)
at forge.game.GameAction.startGame(GameAction.java:1422)
at forge.game.Match$1.run(Match.java:105)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Fixed! Thanks jsv.jsv wrote:The Infestation preconstructed deck has wrong set info (AVR in the file, should be 7ED).
Fixed! Thanks SirFunchalot.SirFunchalot wrote:Opponent controls no creatures.
My field is an Olivia Voldaren with 1 +1/+1 counter and an Aetherling that is controlled by me via Olivia from my opponent. They activate Supreme Verdict and Aetherling is not destroyed yet goes to the opponent's side of the field. This should not happen as Aetherling's blink effect was not activated and it is still a creature on the battlefield during the resolution of Supreme Verdict and thusly should die.
-
Sloth - Programmer
- Posts: 3498
- Joined: 23 Jun 2009, 19:40
- Has thanked: 125 times
- Been thanked: 507 times
Re: Bug Reports (snapshot builds)
by friarsol » 18 Jun 2013, 02:44
Ok, I was looking through some of the AI Combat functions and noticed this, which I believe is an issue:
AiAttackController.java ll 486
this.random.setSeed(game.getPhaseHandler().getTurn() + this.randomInt);
If I'm reading this correctly it's overriding the random seed that's used everywhere in our software? (Including shuffling?) It looks like the intention is to make the attacker declarations consistent inside each turn for the AI. Can anyone confirm?
AiAttackController.java ll 486
this.random.setSeed(game.getPhaseHandler().getTurn() + this.randomInt);
If I'm reading this correctly it's overriding the random seed that's used everywhere in our software? (Including shuffling?) It looks like the intention is to make the attacker declarations consistent inside each turn for the AI. Can anyone confirm?
- 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 Max mtg » 18 Jun 2013, 04:42
I confirm that this code is ugly and must not alter the seed of gloabally used Random.
If the class need same results each time, let it hold an own instance of Random.
If the class need same results each time, let it hold an own instance of Random.
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 xbon » 18 Jun 2013, 06:06
Description: Attacked with Weatherseed Treefolk
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.4.2-SNAPSHOT-r22118
Operating System: Windows 8 6.2 x86
Java Version: 1.7.0_21 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.TreeMap$PrivateEntryIterator.nextEntry(Unknown Source)
at java.util.TreeMap$KeyIterator.next(Unknown Source)
at java.util.AbstractCollection.toArray(Unknown Source)
at java.util.ArrayList.addAll(Unknown Source)
at forge.game.phase.Combat.getAllBlockers(Combat.java:406)
at forge.Card.isBlocking(Card.java:6866)
at forge.view.arcane.CardPanel.paintChildren(CardPanel.java:412)
at javax.swing.JComponent.paint(Unknown Source)
at forge.view.arcane.CardPanel.paint(CardPanel.java:310)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
at java.awt.Container.paint(Unknown Source)
at java.awt.Window.paint(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1000(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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$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)
Re: Bug Reports (snapshot builds)
by jsv » 18 Jun 2013, 11:31
It seems that a wrong view is being accessed. This change:jsv wrote:I have several gauntlets in progress. No matter which one I select, when I press "Start" it's always the first one in the list that gets loaded.
- Code: Select all
--- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java
+++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java
@@ -96,7 +96,7 @@ public enum CSubmenuGauntletLoad implements ICDoc {
private void startGame() {
FModel.SINGLETON_INSTANCE.setGauntletData(
- GauntletIO.loadGauntlet(VSubmenuGauntletQuick.SINGLETON_INSTANCE.getGauntletLister().getSelectedGauntletFile()));
+ GauntletIO.loadGauntlet(view.getGauntletLister().getSelectedGauntletFile()));
// Start game
SwingUtilities.invokeLater(new Runnable() {
definitely solves my problem... but it's hard for me to say what was the intention behind the original code.
Re: Bug Reports (snapshot builds)
by Max mtg » 18 Jun 2013, 11:38
@jsv, I guess the intention behind original code was to copy-paste as much as possible instead of thinking.
I've applied your patch with revision 22143. Thank you!
I've applied your patch with revision 22143. Thank you!
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 tafkad » 18 Jun 2013, 17:44
Strange bug here that freezes the game -
I went to use Liliana of the Dark Realms 2nd ability to give my Phyrexian Crusader +X/+X for a death blow but forgot the it has the Sword of Feast and Famine equipped (pro Black) so it gave me the usual Shroud Restriction? error but when I went to change to a different target (since it did not give a cancel option) I get a non valid target error on every other creature on both sides in play with no cancel option again and the game is locked - See picture for details.
Also of note minor error in the Duel description said the elf deck is Mono B Forest (see other photo)
Regards
I went to use Liliana of the Dark Realms 2nd ability to give my Phyrexian Crusader +X/+X for a death blow but forgot the it has the Sword of Feast and Famine equipped (pro Black) so it gave me the usual Shroud Restriction? error but when I went to change to a different target (since it did not give a cancel option) I get a non valid target error on every other creature on both sides in play with no cancel option again and the game is locked - See picture for details.
Also of note minor error in the Duel description said the elf deck is Mono B Forest (see other photo)
Regards
Re: Bug Reports (snapshot builds)
by xbon » 18 Jun 2013, 18:30
Description: Attacked with Mons's Goblin Raiders
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.4.2-SNAPSHOT-r22118
Operating System: Windows 8 6.2 x86
Java Version: 1.7.0_21 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at forge.game.phase.Combat.getAttackers(Combat.java:336)
at forge.gui.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:238)
at forge.gui.match.TargetingOverlay.access$2(TargetingOverlay.java:80)
at forge.gui.match.TargetingOverlay$OverlayPanel.paintComponent(TargetingOverlay.java:342)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1000(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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$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)
Re: Bug Reports (snapshot builds)
by Agetian » 18 Jun 2013, 19:35
r22150: A crash after losing in a quest challenge.
- NullPointerException | Open
- Code: Select all
Forge Version: 1.4.2-SNAPSHOT-r22150
Operating System: Windows 7 6.1 x86
Java Version: 1.7.0_09 Oracle Corporation
java.lang.NullPointerException
at forge.game.player.Player.isOpponentOf(Player.java:350)
at forge.Card.canBeShownTo(Card.java:8326)
at forge.control.FControl.mayShowCard(FControl.java:331)
at forge.ImageCache.getImage(ImageCache.java:108)
at forge.view.arcane.CardPanel.setCard(CardPanel.java:644)
at forge.view.arcane.PlayArea.setupPlayZone(PlayArea.java:613)
at forge.view.arcane.PlayArea$1.run(PlayArea.java:510)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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$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)
- Agetian
- Programmer
- Posts: 3486
- Joined: 14 Mar 2011, 05:58
- Has thanked: 683 times
- Been thanked: 569 times
Re: Bug Reports (snapshot builds)
by timmermac » 19 Jun 2013, 12:24
Maybe a dumb question, but were those slivers unblocked?xbon wrote:Description: Attacked with Mons's Goblin RaidersAlso, Frenzy Sliver isn't working properly, from what I see, Neither my Metallic Sliver, nor my opponents Frenzy Sliver had Frenzy.
- ConcurrentModificationException | Open
- Code: Select all
Forge Version: 1.4.2-SNAPSHOT-r22118
Operating System: Windows 8 6.2 x86
Java Version: 1.7.0_21 Oracle Corporation
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
at java.util.ArrayList$Itr.next(Unknown Source)
at forge.game.phase.Combat.getAttackers(Combat.java:336)
at forge.gui.match.TargetingOverlay.assembleArcs(TargetingOverlay.java:238)
at forge.gui.match.TargetingOverlay.access$2(TargetingOverlay.java:80)
at forge.gui.match.TargetingOverlay$OverlayPanel.paintComponent(TargetingOverlay.java:342)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at javax.swing.RepaintManager$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1000(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(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$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)
"I just woke up, haven't had coffee, let alone a pee in 7 days, and I find out you stole my ass and made a ...mini-me! Carter, I should be irked currently, yes?" - Jack O'Neill
Who is online
Users browsing this forum: No registered users and 23 guests