From bf50b09610c79d50c80e3f2309053dc3291b1920 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sat, 6 Oct 2012 19:21:59 +0000 Subject: [PATCH] newGame: observers update before matchState was changed lead to new hanging thread creation --- src/main/java/forge/game/GameNew.java | 13 +++++++++++-- src/main/java/forge/gui/match/CMatchUI.java | 15 --------------- src/main/java/forge/model/FModel.java | 2 +- 3 files changed, 12 insertions(+), 18 deletions(-) diff --git a/src/main/java/forge/game/GameNew.java b/src/main/java/forge/game/GameNew.java index ed0a9aaa4a4..7cdfe65f389 100644 --- a/src/main/java/forge/game/GameNew.java +++ b/src/main/java/forge/game/GameNew.java @@ -29,6 +29,8 @@ import forge.control.input.InputMulligan; import forge.game.player.Player; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; +import forge.gui.framework.EDocID; +import forge.gui.framework.SDisplayUtil; import forge.gui.match.CMatchUI; import forge.gui.match.VMatchUI; import forge.gui.match.controllers.CMessage; @@ -56,9 +58,15 @@ public class GameNew { */ public static void newGame(final PlayerStartsGame... players) { Singletons.getControl().changeState(FControl.MATCH_SCREEN); + SDisplayUtil.showTab(EDocID.REPORT_LOG.getDoc()); - GameNew.newGameCleanup(); - GameNew.newMatchCleanup(); + // Update observers + AllZone.getStack().updateObservers(); + AllZone.getInputControl().updateObservers(); + AllZone.getGameLog().updateObservers(); + + newGameCleanup(); + newMatchCleanup(); Card.resetUniqueNumber(); @@ -77,6 +85,7 @@ public class GameNew { } } bf.updateObservers(); + p.getPlayer().getZone(ZoneType.Hand).updateObservers(); } GameNew.actuateGame(players); diff --git a/src/main/java/forge/gui/match/CMatchUI.java b/src/main/java/forge/gui/match/CMatchUI.java index b0ee61e51d8..e92c96a1990 100644 --- a/src/main/java/forge/gui/match/CMatchUI.java +++ b/src/main/java/forge/gui/match/CMatchUI.java @@ -65,8 +65,6 @@ public enum CMatchUI implements CardContainer { * */ public void initMatch(final String strAvatarIcon) { - SDisplayUtil.showTab(EDocID.REPORT_LOG.getDoc()); - // Update avatars final String[] indices = Singletons.getModel().getPreferences().getPref(FPref.UI_AVATARS).split(","); int i = 0; @@ -95,19 +93,6 @@ public enum CMatchUI implements CardContainer { view.getLblAvatar().setIcon(new ImageIcon(img)); view.getLblAvatar().getResizeTimer().start(); } - - // Update observers - AllZone.getHumanPlayer().updateObservers(); - AllZone.getHumanPlayer().getZone(ZoneType.Hand).updateObservers(); - AllZone.getHumanPlayer().getZone(ZoneType.Battlefield).updateObservers(); - - AllZone.getComputerPlayer().updateObservers(); - AllZone.getComputerPlayer().getZone(ZoneType.Hand).updateObservers(); - AllZone.getComputerPlayer().getZone(ZoneType.Battlefield).updateObservers(); - - AllZone.getStack().updateObservers(); - AllZone.getInputControl().updateObservers(); - AllZone.getGameLog().updateObservers(); } /** diff --git a/src/main/java/forge/model/FModel.java b/src/main/java/forge/model/FModel.java index 624836868d5..f8b7cbf4411 100644 --- a/src/main/java/forge/model/FModel.java +++ b/src/main/java/forge/model/FModel.java @@ -148,7 +148,7 @@ public enum FModel { // Set gameplay preferences and constants final HttpUtil pinger = new HttpUtil(); final String url = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/draftAI/ping.php"; - Constant.Runtime.NET_CONN = (pinger.getURL(url).equals("pong") ? true : false); + Constant.Runtime.NET_CONN = false; // (pinger.getURL(url).equals("pong") ? true : false); this.setBuildInfo(new BuildInfo()); FModel.loadDynamicGamedata();