It is currently 22 May 2025, 22:49
   
Text Size

Bug Reports (snapshot builds)

Post MTG Forge Related Programming Questions Here

Moderators: timmermac, Blacksmith, KrazyTheFox, Agetian, friarsol, CCGHQ Admins

Re: Bug Reports (snapshot builds)

Postby 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:

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
It mentions "Bronze Horse"... What's up?? I can't play Forge since weeks :cry:

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
{B} The night is ours {B}
User avatar
JuzamLover
 
Posts: 4
Joined: 14 Mar 2011, 04:44
Location: Madrid
Has thanked: 0 time
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby 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)
xbon
 
Posts: 124
Joined: 04 Jun 2013, 22:52
Has thanked: 18 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby 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.
jsv
 
Posts: 53
Joined: 29 May 2013, 03:20
Has thanked: 3 times
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby jsv » 17 Jun 2013, 11:44

The Infestation preconstructed deck has wrong set info (AVR in the file, should be 7ED).
jsv
 
Posts: 53
Joined: 29 May 2013, 03:20
Has thanked: 3 times
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby 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.
SirFunchalot
 
Posts: 15
Joined: 23 Apr 2012, 02:50
Has thanked: 3 times
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby Sloth » 17 Jun 2013, 15:40

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 xbon.

jsv wrote:The Infestation preconstructed deck has wrong set info (AVR in the file, should be 7ED).
Fixed! Thanks jsv.

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.
Fixed! Thanks SirFunchalot.
User avatar
Sloth
Programmer
 
Posts: 3498
Joined: 23 Jun 2009, 19:40
Has thanked: 125 times
Been thanked: 507 times

Re: Bug Reports (snapshot builds)

Postby 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?
friarsol
Global Moderator
 
Posts: 7593
Joined: 15 May 2010, 04:20
Has thanked: 243 times
Been thanked: 965 times

Re: Bug Reports (snapshot builds)

Postby 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.
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)

Postby 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)
xbon
 
Posts: 124
Joined: 04 Jun 2013, 22:52
Has thanked: 18 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby jsv » 18 Jun 2013, 11:31

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.
It seems that a wrong view is being accessed. This change:

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() {


(view points to VSubmenuGauntletLoad.SINGLETON_INSTANCE.)

definitely solves my problem... but it's hard for me to say what was the intention behind the original code.
jsv
 
Posts: 53
Joined: 29 May 2013, 03:20
Has thanked: 3 times
Been thanked: 6 times

Re: Bug Reports (snapshot builds)

Postby 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!
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)

Postby 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
Attachments
haha.png
Liliana locked out game frozen.jpg
tafkad
 
Posts: 43
Joined: 29 Dec 2011, 02:40
Has thanked: 2 times
Been thanked: 0 time

Re: Bug Reports (snapshot builds)

Postby 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)
Also, Frenzy Sliver isn't working properly, from what I see, Neither my Metallic Sliver, nor my opponents Frenzy Sliver had Frenzy.
xbon
 
Posts: 124
Joined: 04 Jun 2013, 22:52
Has thanked: 18 times
Been thanked: 2 times

Re: Bug Reports (snapshot builds)

Postby 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)

Postby timmermac » 19 Jun 2013, 12:24

xbon wrote: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)
Also, Frenzy Sliver isn't working properly, from what I see, Neither my Metallic Sliver, nor my opponents Frenzy Sliver had Frenzy.
Maybe a dumb question, but were those slivers unblocked?
"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
User avatar
timmermac
Tester
 
Posts: 1512
Joined: 17 May 2010, 20:36
Has thanked: 18 times
Been thanked: 95 times

PreviousNext

Return to Developer's Corner

Who is online

Users browsing this forum: No registered users and 23 guests


Who is online

In total there are 23 users online :: 0 registered, 0 hidden and 23 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 23 guests

Login Form