diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 78de05b113b..f06183abb21 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -95,7 +95,7 @@ public class MageFrame extends javax.swing.JFrame { private static Preferences prefs = Preferences.userNodeForPackage(MageFrame.class); private JLabel title; private Rectangle titleRectangle; - private static MageVersion version = new MageVersion(0, 7, 2); + private final static MageVersion version = new MageVersion(0, 7, 2); /** * @return the session @@ -728,6 +728,10 @@ public class MageFrame extends javax.swing.JFrame { btnDeckEditor.setEnabled(true); } + public void hideTables() { + this.tablesPane.hideTables(); + } + public void showDeckEditor(DeckEditorMode mode, Deck deck, UUID tableId, int time) { try { DeckEditorPane deckEditorPane = new DeckEditorPane(); diff --git a/Mage.Client/src/main/java/mage/client/chat/ChatClientImpl.java b/Mage.Client/src/main/java/mage/client/chat/ChatClientImpl.java deleted file mode 100644 index eb31f905695..00000000000 --- a/Mage.Client/src/main/java/mage/client/chat/ChatClientImpl.java +++ /dev/null @@ -1,85 +0,0 @@ -/* -* Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. -* -* Redistribution and use in source and binary forms, with or without modification, are -* permitted provided that the following conditions are met: -* -* 1. Redistributions of source code must retain the above copyright notice, this list of -* conditions and the following disclaimer. -* -* 2. Redistributions in binary form must reproduce the above copyright notice, this list -* of conditions and the following disclaimer in the documentation and/or other materials -* provided with the distribution. -* -* THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED -* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR -* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* -* The views and conclusions contained in the software and documentation are those of the -* authors and should not be interpreted as representing official policies, either expressed -* or implied, of BetaSteward_at_googlemail.com. -*/ - -//package mage.client.chat; -// -//import java.io.Serializable; -//import java.rmi.RemoteException; -//import java.rmi.server.UnicastRemoteObject; -//import java.util.UUID; -//import java.util.logging.Level; -//import java.util.logging.Logger; -//import javax.swing.JTextArea; -//import mage.interfaces.ChatClient; -//import mage.util.Logging; -// -// -///** -// * -// * @author BetaSteward_at_googlemail.com -// */ -//public class ChatClientImpl implements ChatClient, Serializable { -// -// private final static Logger logger = Logging.getLogger(ChatClientImpl.class.getName()); -// -// private JTextArea textArea; -// private String userName; -// private UUID clientId; -// -// public ChatClientImpl(String userName, JTextArea textArea) { -// this.clientId = UUID.randomUUID(); -// this.textArea = textArea; -// try { -// this.userName = userName; -// UnicastRemoteObject.exportObject(this, 0); -// } catch (RemoteException ex) { -// logger.log(Level.SEVERE, null, ex); -// } -// } -// -// @Override -// public void receiveMessage(String message) throws RemoteException { -// this.textArea.append(message + "\n"); -// textArea.setCaretPosition(textArea.getText().length() - 1); -// } -// -// @Override -// public String getName() throws RemoteException { -// return userName; -// } -// -// @Override -// public UUID getId() throws RemoteException { -// return clientId; -// } -// -// public UUID getIdLocal() { -// return clientId; -// } -// -//} \ No newline at end of file diff --git a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java index 840f1ad0d49..bc4a390267e 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/JoinTableDialog.java @@ -59,6 +59,7 @@ public class JoinTableDialog extends MageDialog { /** Creates new form JoinTableDialog */ public JoinTableDialog() { initComponents(); + newPlayerPanel.showLevel(false); } public void showDialog(UUID roomId, UUID tableId) { diff --git a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java index 8290b72937a..61e5ea07d1f 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/NewTableDialog.java @@ -78,6 +78,7 @@ public class NewTableDialog extends MageDialog { /** Creates new form NewTableDialog */ public NewTableDialog() { initComponents(); + player1Panel.showLevel(false); this.spnNumWins.setModel(new SpinnerNumberModel(1, 1, 5, 1)); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.form b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.form index 93a0e2c261e..601ea1141da 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.form +++ b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.form @@ -39,7 +39,7 @@ - + diff --git a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java index 218f9bc2f2b..4638b229509 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/TableWaitingDialog.java @@ -79,29 +79,33 @@ public class TableWaitingDialog extends MageDialog implements Observer { @Override public void update(Observable arg0, Object arg1) { - TableView table = session.getTable(roomId, tableId); - if (table != null) { - switch (table.getTableState()) { - case STARTING: - this.btnStart.setEnabled(true); - this.btnMoveDown.setEnabled(true); - this.btnMoveUp.setEnabled(true); - break; - case WAITING: - this.btnStart.setEnabled(false); - this.btnMoveDown.setEnabled(false); - this.btnMoveUp.setEnabled(false); - break; - default: - closeDialog(); - return; + try { + TableView table = session.getTable(roomId, tableId); + if (table != null) { + switch (table.getTableState()) { + case STARTING: + this.btnStart.setEnabled(true); + this.btnMoveDown.setEnabled(true); + this.btnMoveUp.setEnabled(true); + break; + case WAITING: + this.btnStart.setEnabled(false); + this.btnMoveDown.setEnabled(false); + this.btnMoveUp.setEnabled(false); + break; + default: + closeDialog(); + return; + } + int row = this.tableSeats.getSelectedRow(); + tableWaitModel.loadData(table); + this.tableSeats.repaint(); + this.tableSeats.getSelectionModel().setSelectionInterval(row, row); } - int row = this.tableSeats.getSelectedRow(); - tableWaitModel.loadData(table); - this.tableSeats.repaint(); - this.tableSeats.getSelectionModel().setSelectionInterval(row, row); - } - else { + else { + closeDialog(); + } + } catch (Exception ex) { closeDialog(); } } diff --git a/Mage.Client/src/main/java/mage/client/remote/Session.java b/Mage.Client/src/main/java/mage/client/remote/Session.java index 2a4caede648..feaef530ffa 100644 --- a/Mage.Client/src/main/java/mage/client/remote/Session.java +++ b/Mage.Client/src/main/java/mage/client/remote/Session.java @@ -110,6 +110,8 @@ public class Session { JOptionPane.showMessageDialog(frame, "Unable to connect to server. " + ex.getMessage()); } catch (RemoteException ex) { logger.log(Level.SEVERE, "Unable to connect to server - ", ex); + disconnect(); + JOptionPane.showMessageDialog(frame, "Unable to connect to server. " + ex.getMessage()); } catch (NotBoundException ex) { logger.log(Level.SEVERE, "Unable to connect to server - ", ex); } @@ -120,9 +122,15 @@ public class Session { if (isConnected()) { try { + frame.hideTables(); for (UUID chatId: chats.keySet()) { server.leaveChat(chatId, sessionId); } + } + catch (Exception ex) { + //swallow all exceptions at this point + } + try { //TODO: stop daemon server.deregisterClient(sessionId); server = null; diff --git a/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java b/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java index db848e24ade..3609f15d9fc 100644 --- a/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/NewPlayerPanel.java @@ -100,6 +100,11 @@ public class NewPlayerPanel extends javax.swing.JPanel { return Integer.valueOf((String)this.cbLevel.getSelectedItem()); } + public void showLevel(boolean show) { + this.cbLevel.setVisible(show); + this.lblLevel.setVisible(show); + } + /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is diff --git a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java index 05e4e64af4c..bba40defc9f 100644 --- a/Mage.Client/src/main/java/mage/client/table/TablesPanel.java +++ b/Mage.Client/src/main/java/mage/client/table/TablesPanel.java @@ -112,12 +112,10 @@ public class TablesPanel extends javax.swing.JPanel implements Observer { } } else if (state.equals("Watch")) { logger.info("Watching table " + tableId); - if (!session.watchTable(roomId, tableId)) - hideTables(); + session.watchTable(roomId, tableId); } else if (state.equals("Replay")) { logger.info("Replaying game " + gameId); - if (!session.replayGame(gameId)) - hideTables(); + session.replayGame(gameId); } } }; @@ -146,7 +144,7 @@ public class TablesPanel extends javax.swing.JPanel implements Observer { try { tableModel.loadData(MageFrame.getSession().getTables(roomId)); this.tableTables.repaint(); - } catch (MageRemoteException ex) { + } catch (Exception ex) { hideTables(); } } @@ -313,7 +311,6 @@ public class TablesPanel extends javax.swing.JPanel implements Observer { table = session.createTable(roomId, options); session.joinTable(roomId, table.getTableId(), "Human", "Human", 1, Sets.loadDeck("test.dck")); session.joinTable(roomId, table.getTableId(), "Computer", "Computer - default", 1, Sets.loadDeck("test.dck")); - hideTables(); session.startGame(roomId, table.getTableId()); } catch (Exception ex) { handleError(ex); diff --git a/Mage.Server/config/config.xml b/Mage.Server/config/config.xml index 31bc6c7a302..00f586ba5a9 100644 --- a/Mage.Server/config/config.xml +++ b/Mage.Server/config/config.xml @@ -4,9 +4,7 @@ - - - + diff --git a/Mage.Server/config/log4j.properties b/Mage.Server/config/log4j.properties new file mode 100644 index 00000000000..8cc5fadb8bf --- /dev/null +++ b/Mage.Server/config/log4j.properties @@ -0,0 +1,14 @@ +#default levels +log4j.rootLogger=debug, logfile + +#console log +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%-5p [%d{yyyy-MM-dd HH:mm [ss:SSS]}] %C{1}[%t]: %m%n +log4j.appender.console.Threshold=info + +#file log +log4j.appender.logfile=org.apache.log4j.FileAppender +log4j.appender.logfile.File=mageserver.log +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout +log4j.appender.logfile.layout.ConversionPattern=%-5p [%d{yyyy-MM-dd HH:mm [ss:SSS]}] %C{1}[%t]: %m%n \ No newline at end of file diff --git a/Mage.Server/release/config/log4j.properties b/Mage.Server/release/config/log4j.properties new file mode 100644 index 00000000000..724eac3e214 --- /dev/null +++ b/Mage.Server/release/config/log4j.properties @@ -0,0 +1,14 @@ +#default levels +log4j.rootLogger=info, logfile + +#console log +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%-5p [%d{yyyy-MM-dd HH:mm [ss:SSS]}] %C{1}[%t]: %m%n +log4j.appender.console.Threshold=info + +#file log +log4j.appender.logfile=org.apache.log4j.FileAppender +log4j.appender.logfile.File=mageserver.log +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout +log4j.appender.logfile.layout.ConversionPattern=%-5p [%d{yyyy-MM-dd HH:mm [ss:SSS]}] %C{1}[%t]: %m%n \ No newline at end of file diff --git a/Mage.Server/release/startServer.bat b/Mage.Server/release/startServer.bat index 0306f65e49e..5bca97b5943 100644 --- a/Mage.Server/release/startServer.bat +++ b/Mage.Server/release/startServer.bat @@ -1,8 +1,3 @@ @ECHO OFF -IF NOT EXIST "C:\Program Files\Java\jre6" GOTO NOJAVADIR -set JAVA_HOME="C:\Program Files\Java\jre6" -set CLASSPATH=%JAVA_HOME%/bin;%CLASSPATH% -set PATH=%JAVA_HOME%/bin;%PATH% -:NOJAVADIR -java -Djava.security.policy=./config/security.policy -Djava.util.logging.config.file=./config/logging.config -jar ./Mage-Server-${project.version}.jar +java -Djava.security.policy=./config/security.policy -Djava.util.logging.config.file=./config/logging.config -Dlog4j.configuration=file:./config/log4j.properties -jar ./Mage-Server-${project.version}.jar pause \ No newline at end of file diff --git a/Mage.Server/release/startServer.sh b/Mage.Server/release/startServer.sh new file mode 100644 index 00000000000..e17f74f5f38 --- /dev/null +++ b/Mage.Server/release/startServer.sh @@ -0,0 +1 @@ +java -Djava.security.policy=./config/security.policy -Djava.util.logging.config.file=./config/logging.config -Dlog4j.configuration=file:./config/log4j.properties -jar ./Mage-Server-${project.version}.jar diff --git a/Mage.Server/src/main/java/mage/server/ChatSession.java b/Mage.Server/src/main/java/mage/server/ChatSession.java index fd9b55be5ce..f89bc75af38 100644 --- a/Mage.Server/src/main/java/mage/server/ChatSession.java +++ b/Mage.Server/src/main/java/mage/server/ChatSession.java @@ -34,11 +34,10 @@ import java.util.Calendar; import java.util.GregorianCalendar; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; import mage.interfaces.callback.ClientCallback; -import mage.util.Logging; import mage.view.ChatMessage; import mage.view.ChatMessage.MessageColor; +import org.apache.log4j.Logger; /** * @@ -46,7 +45,7 @@ import mage.view.ChatMessage.MessageColor; */ public class ChatSession { - private final static Logger logger = Logging.getLogger(ChatSession.class.getName()); + private final static Logger logger = Logger.getLogger(ChatSession.class); private ConcurrentHashMap clients = new ConcurrentHashMap(); private UUID chatId; private DateFormat timeFormatter = SimpleDateFormat.getTimeInstance(SimpleDateFormat.SHORT); diff --git a/Mage.Server/src/main/java/mage/server/Main.java b/Mage.Server/src/main/java/mage/server/Main.java index 9fb146277e1..9bd3cda72fe 100644 --- a/Mage.Server/src/main/java/mage/server/Main.java +++ b/Mage.Server/src/main/java/mage/server/Main.java @@ -45,6 +45,7 @@ import mage.server.util.config.GamePlugin; import mage.util.Copier; import mage.utils.MageVersion; import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; /** * @@ -67,7 +68,7 @@ public class Main { public static void main(String[] args) { logger.info("Starting MAGE server version " + version); - logger.info("Logging level: " + logger.getLevel()); + logger.info("Logging level: " + logger.getEffectiveLevel()); deleteSavedGames(); ConfigSettings config = ConfigSettings.getInstance(); for (GamePlugin plugin: config.getGameTypes()) { @@ -107,6 +108,7 @@ public class Main { ip = ipParam; } System.setProperty("java.rmi.server.hostname", ip); + System.setProperty("sun.rmi.transport.tcp.readTimeout", "30000"); logger.info("MAGE server - using address " + ip); } diff --git a/Mage.Server/src/main/java/mage/server/Session.java b/Mage.Server/src/main/java/mage/server/Session.java index 314458e8b32..871d94ed4ae 100644 --- a/Mage.Server/src/main/java/mage/server/Session.java +++ b/Mage.Server/src/main/java/mage/server/Session.java @@ -30,13 +30,12 @@ package mage.server; import java.util.logging.Level; import java.util.UUID; -import java.util.logging.Logger; import mage.cards.decks.Deck; import mage.interfaces.callback.CallbackServerSession; import mage.interfaces.callback.ClientCallback; import mage.server.game.GameManager; -import mage.util.Logging; import mage.view.TableClientMessage; +import org.apache.log4j.Logger; /** * @@ -44,7 +43,7 @@ import mage.view.TableClientMessage; */ public class Session { - private final static Logger logger = Logging.getLogger(Session.class.getName()); + private final static Logger logger = Logger.getLogger(Session.class); private UUID sessionId; private UUID clientId; @@ -63,6 +62,10 @@ public class Session { return sessionId; } + public UUID getClientId() { + return clientId; + } + public void kill() { SessionManager.getInstance().removeSession(sessionId); TableManager.getInstance().removeSession(sessionId); @@ -74,19 +77,19 @@ public class Session { try { return callback.callback(); } catch (InterruptedException ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("Session callback error", ex); } return null; } public synchronized void fireCallback(final ClientCallback call) { call.setMessageId(messageId++); - if (logger.isLoggable(Level.FINE)) - logger.fine(sessionId + " - " + call.getMessageId() + " - " + call.getMethod()); + if (logger.isDebugEnabled()) + logger.debug(sessionId + " - " + call.getMessageId() + " - " + call.getMethod()); try { callback.setCallback(call); } catch (InterruptedException ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("Session fireCallback error", ex); } } diff --git a/Mage.Server/src/main/java/mage/server/SessionManager.java b/Mage.Server/src/main/java/mage/server/SessionManager.java index 673de9b4067..359a3636610 100644 --- a/Mage.Server/src/main/java/mage/server/SessionManager.java +++ b/Mage.Server/src/main/java/mage/server/SessionManager.java @@ -31,6 +31,7 @@ package mage.server; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; import mage.interfaces.MageException; +import org.apache.log4j.Logger; /** * @@ -38,6 +39,7 @@ import mage.interfaces.MageException; */ public class SessionManager { + private final static Logger logger = Logger.getLogger(SessionManager.class); private final static SessionManager INSTANCE = new SessionManager(); public static SessionManager getInstance() { @@ -51,24 +53,24 @@ public class SessionManager { } public UUID createSession(String userName, UUID clientId) throws MageException { - if (!isNameUsed(userName)) { - Session session = new Session(userName, clientId); - sessions.put(session.getId(), session); - return session.getId(); + for (Session session: sessions.values()) { + if (session.getUsername().equals(userName)) { + if (session.getClientId().equals(clientId)) { + logger.info("reconnecting session for " + userName); + return session.getId(); + } + else { + throw new MageException("User name already in use"); + } + } } - throw new MageException("User name already in use"); + Session session = new Session(userName, clientId); + sessions.put(session.getId(), session); + return session.getId(); } public void removeSession(UUID sessionId) { sessions.remove(sessionId); } - - private boolean isNameUsed(String name) { - for (Session session: sessions.values()) { - if (session.getUsername().equals(name)) - return true; - } - return false; - } } diff --git a/Mage.Server/src/main/java/mage/server/TableManager.java b/Mage.Server/src/main/java/mage/server/TableManager.java index f5e79d81603..1b857e5c38d 100644 --- a/Mage.Server/src/main/java/mage/server/TableManager.java +++ b/Mage.Server/src/main/java/mage/server/TableManager.java @@ -32,7 +32,6 @@ import mage.game.Table; import java.util.Collection; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; import mage.cards.decks.Deck; import mage.cards.decks.DeckCardLists; import mage.game.GameException; @@ -41,8 +40,7 @@ import mage.game.match.Match; import mage.game.match.MatchOptions; import mage.game.tournament.TournamentOptions; import mage.players.Player; -import mage.server.game.GameReplay; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -51,7 +49,7 @@ import mage.util.Logging; public class TableManager { private final static TableManager INSTANCE = new TableManager(); - private final static Logger logger = Logging.getLogger(TableManager.class.getName()); + //private final static Logger logger = Logger.getLogger(TableManager.class); private ConcurrentHashMap controllers = new ConcurrentHashMap(); private ConcurrentHashMap tables = new ConcurrentHashMap(); diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftController.java b/Mage.Server/src/main/java/mage/server/draft/DraftController.java index dc1854bdf99..7afd8259e8a 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftController.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftController.java @@ -32,7 +32,6 @@ import java.io.File; import java.util.UUID; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; import mage.game.draft.Draft; import mage.game.draft.DraftPlayer; @@ -42,9 +41,9 @@ import mage.game.events.TableEvent; import mage.server.game.GameController; import mage.server.TableManager; import mage.server.util.ThreadExecutor; -import mage.util.Logging; import mage.view.DraftPickView; import mage.view.DraftView; +import org.apache.log4j.Logger; /** * @@ -52,7 +51,7 @@ import mage.view.DraftView; */ public class DraftController { - private final static Logger logger = Logging.getLogger(GameController.class.getName()); + private final static Logger logger = Logger.getLogger(GameController.class); public static final String INIT_FILE_PATH = "config" + File.separator + "init.txt"; private ConcurrentHashMap draftSessions = new ConcurrentHashMap(); @@ -122,7 +121,7 @@ public class DraftController { private synchronized void startDraft() { for (final Entry entry: draftSessions.entrySet()) { if (!entry.getValue().init(getDraftView())) { - logger.severe("Unable to initialize client"); + logger.fatal("Unable to initialize client"); //TODO: generate client error message return; } diff --git a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java index 724ff217907..84d19abc1f3 100644 --- a/Mage.Server/src/main/java/mage/server/draft/DraftSession.java +++ b/Mage.Server/src/main/java/mage/server/draft/DraftSession.java @@ -33,17 +33,15 @@ import java.util.UUID; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.game.draft.Draft; import mage.interfaces.callback.ClientCallback; import mage.server.Session; import mage.server.SessionManager; import mage.server.util.ThreadExecutor; -import mage.util.Logging; import mage.view.DraftClientMessage; import mage.view.DraftPickView; import mage.view.DraftView; +import org.apache.log4j.Logger; /** * @@ -51,7 +49,7 @@ import mage.view.DraftView; */ public class DraftSession { - protected final static Logger logger = Logging.getLogger(DraftSession.class.getName()); + protected final static Logger logger = Logger.getLogger(DraftSession.class); protected UUID sessionId; protected UUID playerId; @@ -143,7 +141,7 @@ public class DraftSession { } protected void handleRemoteException(RemoteException ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("DraftSession error ", ex); DraftManager.getInstance().kill(draft.getId(), sessionId); } diff --git a/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java b/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java index 2065535ff99..5b0926ef40e 100644 --- a/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/DeckValidatorFactory.java @@ -32,11 +32,8 @@ import java.lang.reflect.Constructor; import java.util.HashMap; import java.util.Map; import java.util.Set; -import java.util.logging.Level; import mage.cards.decks.*; -import java.util.logging.Logger; -import mage.Constants; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -45,7 +42,7 @@ import mage.util.Logging; public class DeckValidatorFactory { private final static DeckValidatorFactory INSTANCE = new DeckValidatorFactory(); - private final static Logger logger = Logging.getLogger(DeckValidatorFactory.class.getName()); + private final static Logger logger = Logger.getLogger(DeckValidatorFactory.class); private Map deckTypes = new HashMap(); @@ -63,7 +60,7 @@ public class DeckValidatorFactory { con = deckTypes.get(deckType).getConstructor(new Class[]{}); validator = (DeckValidator)con.newInstance(new Object[] {}); } catch (Exception ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("DeckValidatorFactory error", ex); return null; } logger.info("Deck validator created: " + validator.getName()); diff --git a/Mage.Server/src/main/java/mage/server/game/GameFactory.java b/Mage.Server/src/main/java/mage/server/game/GameFactory.java index e35ee4b9ca2..b42d2016a8d 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/GameFactory.java @@ -33,13 +33,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.game.match.Match; import mage.game.match.MatchOptions; -import mage.util.Logging; import mage.game.match.MatchType; import mage.view.GameTypeView; +import org.apache.log4j.Logger; /** * @@ -48,7 +46,7 @@ import mage.view.GameTypeView; public class GameFactory { private final static GameFactory INSTANCE = new GameFactory(); - private final static Logger logger = Logging.getLogger(GameFactory.class.getName()); + private final static Logger logger = Logger.getLogger(GameFactory.class); private Map> games = new HashMap>(); private Map gameTypes = new HashMap(); @@ -69,7 +67,7 @@ public class GameFactory { con = games.get(gameType).getConstructor(new Class[]{MatchOptions.class}); match = con.newInstance(new Object[] {options}); } catch (Exception ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("Error creating match - " + gameType, ex); return null; } logger.info("Game created: " + gameType); // + game.getId().toString()); diff --git a/Mage.Server/src/main/java/mage/server/game/GameManager.java b/Mage.Server/src/main/java/mage/server/game/GameManager.java index 7c4a8ebced9..7cf9970ea63 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameManager.java +++ b/Mage.Server/src/main/java/mage/server/game/GameManager.java @@ -64,7 +64,9 @@ public class GameManager { } public UUID getChatId(UUID gameId) { - return gameControllers.get(gameId).getChatId(); + if (gameControllers.containsKey(gameId)) + return gameControllers.get(gameId).getChatId(); + return null; } public void sendPlayerUUID(UUID gameId, UUID sessionId, UUID data) { diff --git a/Mage.Server/src/main/java/mage/server/game/GameWatcher.java b/Mage.Server/src/main/java/mage/server/game/GameWatcher.java index 1adc2b5d91e..6913e690cd7 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameWatcher.java +++ b/Mage.Server/src/main/java/mage/server/game/GameWatcher.java @@ -30,14 +30,12 @@ package mage.server.game; import java.rmi.RemoteException; import java.util.UUID; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.interfaces.callback.ClientCallback; import mage.server.Session; import mage.server.SessionManager; -import mage.util.Logging; import mage.view.GameClientMessage; import mage.view.GameView; +import org.apache.log4j.Logger; /** * @@ -45,7 +43,7 @@ import mage.view.GameView; */ public class GameWatcher { - protected final static Logger logger = Logging.getLogger(GameWatcher.class.getName()); + protected final static Logger logger = Logger.getLogger(GameWatcher.class); protected UUID sessionId; protected UUID gameId; @@ -102,7 +100,7 @@ public class GameWatcher { } protected void handleRemoteException(RemoteException ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("GameWatcher error", ex); GameManager.getInstance().kill(gameId, sessionId); } diff --git a/Mage.Server/src/main/java/mage/server/game/GameWorker.java b/Mage.Server/src/main/java/mage/server/game/GameWorker.java index c0c15037f58..5abee8b2be4 100644 --- a/Mage.Server/src/main/java/mage/server/game/GameWorker.java +++ b/Mage.Server/src/main/java/mage/server/game/GameWorker.java @@ -30,10 +30,8 @@ package mage.server.game; import java.util.UUID; import java.util.concurrent.Callable; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.game.Game; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -41,7 +39,7 @@ import mage.util.Logging; */ public class GameWorker implements Callable { - private final static Logger logger = Logging.getLogger(GameWorker.class.getName()); + private final static Logger logger = Logger.getLogger(GameWorker.class); private GameCallback result; private Game game; @@ -59,7 +57,7 @@ public class GameWorker implements Callable { game.start(choosingPlayerId); result.gameResult(game.getWinner()); } catch (Exception ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("GameWorker error ", ex); result.gameResult("Server Error"); } return null; diff --git a/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java b/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java index edca14c2a7a..bf87f5eb316 100644 --- a/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java +++ b/Mage.Server/src/main/java/mage/server/game/GamesRoomImpl.java @@ -36,14 +36,12 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; import mage.cards.decks.DeckCardLists; import mage.game.GameException; -import mage.game.draft.DraftOptions; import mage.game.match.MatchOptions; import mage.game.tournament.TournamentOptions; -import mage.util.Logging; import mage.view.TableView; +import org.apache.log4j.Logger; /** * @@ -51,7 +49,7 @@ import mage.view.TableView; */ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { - private final static Logger logger = Logging.getLogger(GamesRoomImpl.class.getName()); +// private final static Logger logger = Logger.getLogger(GamesRoomImpl.class); private ConcurrentHashMap tables = new ConcurrentHashMap(); @@ -98,7 +96,9 @@ public class GamesRoomImpl extends RoomImpl implements GamesRoom, Serializable { @Override public TableView getTable(UUID tableId) { - return new TableView(tables.get(tableId)); + if (tables.containsKey(tableId)) + return new TableView(tables.get(tableId)); + return null; } @Override diff --git a/Mage.Server/src/main/java/mage/server/game/GamesRoomManager.java b/Mage.Server/src/main/java/mage/server/game/GamesRoomManager.java index c0cfd0278d0..30f885eeaae 100644 --- a/Mage.Server/src/main/java/mage/server/game/GamesRoomManager.java +++ b/Mage.Server/src/main/java/mage/server/game/GamesRoomManager.java @@ -30,8 +30,7 @@ package mage.server.game; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -40,7 +39,7 @@ import mage.util.Logging; public class GamesRoomManager { private final static GamesRoomManager INSTANCE = new GamesRoomManager(); - private final static Logger logger = Logging.getLogger(GamesRoomManager.class.getName()); +// private final static Logger logger = Logger.getLogger(GamesRoomManager.class); private ConcurrentHashMap rooms = new ConcurrentHashMap(); private UUID mainRoomId; diff --git a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java index 4a2850c4b61..a9d295b8d44 100644 --- a/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java +++ b/Mage.Server/src/main/java/mage/server/game/PlayerFactory.java @@ -29,16 +29,12 @@ package mage.server.game; import java.lang.reflect.Constructor; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.Constants.RangeOfInfluence; -import mage.cards.decks.Deck; import mage.players.Player; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -47,7 +43,7 @@ import mage.util.Logging; public class PlayerFactory { private final static PlayerFactory INSTANCE = new PlayerFactory(); - private final static Logger logger = Logging.getLogger(PlayerFactory.class.getName()); + private final static Logger logger = Logger.getLogger(PlayerFactory.class); private Map playerTypes = new LinkedHashMap(); @@ -64,7 +60,7 @@ public class PlayerFactory { con = playerTypes.get(playerType).getConstructor(new Class[]{String.class, RangeOfInfluence.class}); player = (Player)con.newInstance(new Object[] {name, range}); } catch (Exception ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("PlayerFactory error ", ex); return null; } logger.info("Player created: " + name + "-" + player.getId().toString()); diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java index b01511d9de6..13518598bf4 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentController.java @@ -31,8 +31,6 @@ package mage.server.tournament; import java.util.Map.Entry; import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.cards.decks.Deck; import mage.game.GameException; import mage.game.Table; @@ -47,9 +45,9 @@ import mage.game.tournament.TournamentPlayer; import mage.server.ChatManager; import mage.server.TableManager; import mage.server.util.ThreadExecutor; -import mage.util.Logging; import mage.view.ChatMessage.MessageColor; import mage.view.TournamentView; +import org.apache.log4j.Logger; /** * @@ -57,7 +55,7 @@ import mage.view.TournamentView; */ public class TournamentController { - private final static Logger logger = Logging.getLogger(TournamentController.class.getName()); + private final static Logger logger = Logger.getLogger(TournamentController.class); private UUID sessionId; private UUID chatId; @@ -83,7 +81,7 @@ public class TournamentController { switch (event.getEventType()) { case INFO: ChatManager.getInstance().broadcast(chatId, "", event.getMessage(), MessageColor.BLACK); - logger.finest(tournament.getId() + " " + event.getMessage()); + logger.debug(tournament.getId() + " " + event.getMessage()); break; case START_DRAFT: startDraft(event.getDraft()); @@ -160,7 +158,7 @@ public class TournamentController { private synchronized void startTournament() { for (final Entry entry: tournamentSessions.entrySet()) { if (!entry.getValue().init(getTournamentView())) { - logger.severe("Unable to initialize client"); + logger.fatal("Unable to initialize client"); //TODO: generate client error message return; } @@ -179,7 +177,7 @@ public class TournamentController { tableManager.startMatch(null, table.getId()); pair.setMatch(tableManager.getMatch(table.getId())); } catch (GameException ex) { - Logger.getLogger(TournamentController.class.getName()).log(Level.SEVERE, null, ex); + logger.fatal("TournamentController startMatch error", ex); } } diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java index f602dc5fb67..4421c6f2968 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentFactory.java @@ -33,13 +33,11 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.game.tournament.Tournament; import mage.game.tournament.TournamentOptions; import mage.game.tournament.TournamentType; -import mage.util.Logging; import mage.view.TournamentTypeView; +import org.apache.log4j.Logger; /** * @@ -47,7 +45,7 @@ import mage.view.TournamentTypeView; */ public class TournamentFactory { private final static TournamentFactory INSTANCE = new TournamentFactory(); - private final static Logger logger = Logging.getLogger(TournamentFactory.class.getName()); + private final static Logger logger = Logger.getLogger(TournamentFactory.class); private Map> tournaments = new HashMap>(); private Map tournamentTypes = new HashMap(); @@ -67,7 +65,7 @@ public class TournamentFactory { con = tournaments.get(tournamentType).getConstructor(new Class[]{TournamentOptions.class}); tournament = con.newInstance(new Object[] {options}); } catch (Exception ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("TournamentFactory error ", ex); return null; } logger.info("Tournament created: " + tournamentType); // + game.getId().toString()); diff --git a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java index 5286f79b5d5..a03e5fe0ebb 100644 --- a/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java +++ b/Mage.Server/src/main/java/mage/server/tournament/TournamentSession.java @@ -33,23 +33,21 @@ import java.util.UUID; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.cards.decks.Deck; import mage.game.tournament.Tournament; import mage.interfaces.callback.ClientCallback; import mage.server.Session; import mage.server.SessionManager; import mage.server.util.ThreadExecutor; -import mage.util.Logging; import mage.view.TournamentView; +import org.apache.log4j.Logger; /** * * @author BetaSteward_at_googlemail.com */ public class TournamentSession { - protected final static Logger logger = Logging.getLogger(TournamentSession.class.getName()); + protected final static Logger logger = Logger.getLogger(TournamentSession.class); protected UUID sessionId; protected UUID playerId; @@ -119,7 +117,7 @@ public class TournamentSession { } protected void handleRemoteException(RemoteException ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("TournamentSession error ", ex); TournamentManager.getInstance().kill(tournament.getId(), sessionId); } diff --git a/Mage.Server/src/main/java/mage/server/util/Config.java b/Mage.Server/src/main/java/mage/server/util/Config.java index ff020a26354..e79d5b605ac 100644 --- a/Mage.Server/src/main/java/mage/server/util/Config.java +++ b/Mage.Server/src/main/java/mage/server/util/Config.java @@ -30,9 +30,7 @@ package mage.server.util; import java.io.IOException; import java.util.Properties; -import java.util.logging.Level; -import java.util.logging.Logger; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -40,14 +38,14 @@ import mage.util.Logging; */ public class Config { - private final static Logger logger = Logging.getLogger(Config.class.getName()); + private final static Logger logger = Logger.getLogger(Config.class); static { Properties p = new Properties(); try { p.load(Config.class.getResourceAsStream("resources/config.properties")); } catch (IOException ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("Config error", ex); } port = Integer.parseInt(p.getProperty("port")); remoteServer = p.getProperty("remote-server"); diff --git a/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java b/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java index 4301f69fd2e..7ffbca18431 100644 --- a/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java +++ b/Mage.Server/src/main/java/mage/server/util/ConfigSettings.java @@ -30,22 +30,21 @@ package mage.server.util; import java.io.File; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Unmarshaller; import mage.server.util.config.Config; import mage.server.util.config.Plugin; import mage.server.util.config.GamePlugin; -import mage.util.Logging; +import org.apache.log4j.Logger; + /** * * @author BetaSteward_at_googlemail.com */ public class ConfigSettings { - private final static Logger logger = Logging.getLogger(ConfigSettings.class.getName()); + private final static Logger logger = Logger.getLogger(ConfigSettings.class); private final static ConfigSettings INSTANCE = new ConfigSettings(); private Config config; @@ -60,7 +59,7 @@ public class ConfigSettings { Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); config = (Config) unmarshaller.unmarshal(new File("config/config.xml")); } catch (JAXBException ex) { - logger.log(Level.SEVERE, null, ex); + logger.fatal("ConfigSettings error", ex); } } diff --git a/Mage.Sets/pom.xml b/Mage.Sets/pom.xml index eabb9c3cb65..f5fcf3a4e4f 100644 --- a/Mage.Sets/pom.xml +++ b/Mage.Sets/pom.xml @@ -22,6 +22,12 @@ Mage ${mage-version} + + log4j + log4j + 1.2.14 + jar + diff --git a/Mage.Sets/src/mage/sets/Sets.java b/Mage.Sets/src/mage/sets/Sets.java index 7ccefd8e663..47e6aab829c 100644 --- a/Mage.Sets/src/mage/sets/Sets.java +++ b/Mage.Sets/src/mage/sets/Sets.java @@ -32,10 +32,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; import java.util.*; -import java.util.logging.Level; -import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; import mage.Constants.CardType; @@ -46,7 +43,7 @@ import mage.cards.CardImpl; import mage.cards.ExpansionSet; import mage.cards.decks.Deck; import mage.cards.decks.DeckCardLists; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -54,7 +51,7 @@ import mage.util.Logging; */ public class Sets extends HashMap { - private final static Logger logger = Logging.getLogger(Sets.class.getName()); + private final static Logger logger = Logger.getLogger(Sets.class); private static final Sets fINSTANCE = new Sets(); private static Set names; private static List cards; @@ -222,7 +219,7 @@ public class Sets extends HashMap { Constructor con = clazz.getConstructor(new Class[]{UUID.class}); return (Card) con.newInstance(new Object[] {null}); } catch (Exception ex) { - logger.log(Level.SEVERE, "Error creating card:" + clazz.getName(), ex); + logger.fatal("Error creating card:" + clazz.getName(), ex); return null; } } diff --git a/Mage/pom.xml b/Mage/pom.xml index 957752219f7..7785970c5cd 100644 --- a/Mage/pom.xml +++ b/Mage/pom.xml @@ -14,7 +14,14 @@ jar Mage Framework - + + + log4j + log4j + 1.2.14 + jar + + diff --git a/Mage/src/mage/abilities/AbilityImpl.java b/Mage/src/mage/abilities/AbilityImpl.java index 5ae697ecc4e..f64901177ae 100644 --- a/Mage/src/mage/abilities/AbilityImpl.java +++ b/Mage/src/mage/abilities/AbilityImpl.java @@ -31,7 +31,6 @@ package mage.abilities; import java.util.ArrayList; import java.util.List; import java.util.UUID; -import java.util.logging.Logger; import mage.Constants.AbilityType; import mage.Constants.EffectType; import mage.Constants.Outcome; @@ -52,7 +51,7 @@ import mage.choices.Choices; import mage.game.Game; import mage.target.Target; import mage.target.Targets; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -60,7 +59,7 @@ import mage.util.Logging; */ public abstract class AbilityImpl> implements Ability { - private final static transient Logger logger = Logging.getLogger(AbilityImpl.class.getName()); + private final static transient Logger logger = Logger.getLogger(AbilityImpl.class); protected UUID id; protected UUID originalId; @@ -153,12 +152,12 @@ public abstract class AbilityImpl> implements Ability { public boolean activate(Game game, boolean noMana) { //20100716 - 601.2b if (choices.size() > 0 && choices.choose(game, this) == false) { - logger.fine("activate failed - choice"); + logger.debug("activate failed - choice"); return false; } //20100716 - 601.2b if (targets.size() > 0 && targets.chooseTargets(effects.get(0).getOutcome(), this.controllerId, this, game) == false) { - logger.fine("activate failed - target"); + logger.debug("activate failed - target"); return false; } //20100716 - 601.2e @@ -170,13 +169,13 @@ public abstract class AbilityImpl> implements Ability { //20100716 - 601.2f if (!manaCostsToPay.pay(game, sourceId, controllerId, noMana)) { - logger.fine("activate failed - mana"); + logger.debug("activate failed - mana"); return false; } } //20100716 - 601.2g if (!costs.pay(game, sourceId, controllerId, noMana)) { - logger.fine("activate failed - non mana costs"); + logger.debug("activate failed - non mana costs"); return false; } return true; diff --git a/Mage/src/mage/cards/CardImpl.java b/Mage/src/mage/cards/CardImpl.java index 0e5b1909f17..7d846e87d99 100644 --- a/Mage/src/mage/cards/CardImpl.java +++ b/Mage/src/mage/cards/CardImpl.java @@ -33,8 +33,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.Constants.CardType; import mage.Constants.Rarity; import mage.Constants.Zone; @@ -50,12 +48,12 @@ import mage.game.events.GameEvent; import mage.game.events.ZoneChangeEvent; import mage.game.permanent.PermanentCard; import mage.game.stack.Spell; -import mage.util.Logging; import mage.watchers.Watchers; +import org.apache.log4j.Logger; public abstract class CardImpl> extends MageObjectImpl implements Card { - private final static Logger logger = Logging.getLogger(CardImpl.class.getName()); + private final static Logger logger = Logger.getLogger(CardImpl.class); protected UUID ownerId; protected int cardNumber; @@ -109,7 +107,7 @@ public abstract class CardImpl> extends MageObjectImpl return card; } catch (Exception e) { - logger.log(Level.SEVERE, "Error loading card: " + name, e); + logger.fatal("Error loading card: " + name, e); return null; } } diff --git a/Mage/src/mage/cards/ExpansionSet.java b/Mage/src/mage/cards/ExpansionSet.java index fae0423e094..91239dc480f 100644 --- a/Mage/src/mage/cards/ExpansionSet.java +++ b/Mage/src/mage/cards/ExpansionSet.java @@ -31,7 +31,6 @@ package mage.cards; import java.io.UnsupportedEncodingException; import mage.Constants.Rarity; import mage.Constants.SetType; -import mage.util.Logging; import java.io.File; import java.io.FileInputStream; @@ -44,15 +43,14 @@ import java.net.URLDecoder; import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; -import java.util.logging.Level; -import java.util.logging.Logger; +import org.apache.log4j.Logger; /** * @author BetaSteward_at_googlemail.com */ public abstract class ExpansionSet implements Serializable { - private final static Logger logger = Logging.getLogger(ExpansionSet.class.getName()); + private final static Logger logger = Logger.getLogger(ExpansionSet.class); protected static Random rnd = new Random(); @@ -112,8 +110,7 @@ public abstract class ExpansionSet implements Serializable { Constructor con = clazz.getConstructor(new Class[]{UUID.class}); return (Card) con.newInstance(new Object[]{null}); } catch (Exception ex) { - logger.log(Level.SEVERE, "Error creating card:" + clazz.getName(), ex); - ex.printStackTrace(); + logger.fatal("Error creating card:" + clazz.getName(), ex); return null; } } @@ -165,7 +162,7 @@ public abstract class ExpansionSet implements Serializable { try { resources = classLoader.getResources(path); } catch (IOException e) { - e.printStackTrace(); + logger.fatal("Error loading resource - " + path, e); } List dirs = new ArrayList(); boolean isLoadingFromJar = false; @@ -180,8 +177,7 @@ public abstract class ExpansionSet implements Serializable { try { dirs.add(new File(URLDecoder.decode(resource.getFile(), "UTF-8"))); } catch (UnsupportedEncodingException e) { - logger.log(Level.SEVERE, "Error decoding director - " + resource.getFile(), e); - e.printStackTrace(); + logger.fatal("Error decoding director - " + resource.getFile(), e); } } List classes = new ArrayList(); @@ -193,21 +189,20 @@ public abstract class ExpansionSet implements Serializable { try { jarPath = URLDecoder.decode(jarPath.substring(jarPath.indexOf("file:/") + "file:/".length()), "UTF-8"); } catch (UnsupportedEncodingException e) { - logger.log(Level.SEVERE, "Error decoding file - " + jarPath, e); - e.printStackTrace(); + logger.fatal("Error decoding file - " + jarPath, e); } } try { classes.addAll(findClassesInJar(new File(jarPath), path)); } catch (ClassNotFoundException e) { - e.printStackTrace(); + logger.fatal("Error loading classes - " + jarPath, e); } } else { // faster but doesn't work for jars for (File directory : dirs) { try { classes.addAll(findClasses(directory, packageName)); } catch (ClassNotFoundException e) { - e.printStackTrace(); + logger.fatal("Error loading classes - " + jarPath, e); } } } @@ -270,10 +265,9 @@ public abstract class ExpansionSet implements Serializable { } } } catch (Exception e) { - e.printStackTrace(); + logger.fatal("Error loading classes - " + file, e); } - return classes; } diff --git a/Mage/src/mage/game/GameImpl.java b/Mage/src/mage/game/GameImpl.java index 6a725af5763..61bb9225307 100644 --- a/Mage/src/mage/game/GameImpl.java +++ b/Mage/src/mage/game/GameImpl.java @@ -57,18 +57,17 @@ import mage.players.Player; import mage.players.PlayerList; import mage.players.Players; import mage.target.TargetPlayer; -import mage.util.Logging; import mage.watchers.Watcher; import java.io.IOException; import java.io.Serializable; import java.util.*; -import java.util.logging.Logger; import mage.game.permanent.PermanentImpl; +import org.apache.log4j.Logger; public abstract class GameImpl> implements Game, Serializable { - private final static transient Logger logger = Logging.getLogger(GameImpl.class.getName()); + private final static transient Logger logger = Logger.getLogger(GameImpl.class); private static FilterPlaneswalkerPermanent filterPlaneswalker = new FilterPlaneswalkerPermanent(); private static FilterLegendaryPermanent filterLegendary = new FilterLegendaryPermanent(); @@ -285,7 +284,8 @@ public abstract class GameImpl> implements Game, Serializa public void bookmarkState() { if (!simulation) { saveState(); - logger.fine("Bookmarking state: " + gameStates.getSize()); + if (logger.isDebugEnabled()) + logger.debug("Bookmarking state: " + gameStates.getSize()); savedStates.push(gameStates.getSize() - 1); } } @@ -317,10 +317,8 @@ public abstract class GameImpl> implements Game, Serializa PlayerList players = state.getPlayerList(startingPlayerId); Player player = getPlayer(players.get()); while (!isGameOver()) { - //if (player.getId().equals(startingPlayerId)) { - state.setTurnNum(state.getTurnNum() + 1); - fireInformEvent("Turn " + Integer.toString(state.getTurnNum())); - //} + state.setTurnNum(state.getTurnNum() + 1); + fireInformEvent("Turn " + Integer.toString(state.getTurnNum())); if (checkStopOnTurnOption(options)) return; state.setActivePlayerId(player.getId()); state.getTurn().play(this, player.getId()); @@ -1021,7 +1019,7 @@ public abstract class GameImpl> implements Game, Serializa player.setLife(amount, this); logger.info("Setting player's life: "); } catch (NumberFormatException e) { - e.printStackTrace(); + logger.fatal("error setting life", e); } } diff --git a/Mage/src/mage/game/GameStates.java b/Mage/src/mage/game/GameStates.java index 5f118eeab51..b9184e75cc1 100644 --- a/Mage/src/mage/game/GameStates.java +++ b/Mage/src/mage/game/GameStates.java @@ -31,9 +31,8 @@ package mage.game; import java.io.Serializable; import java.util.LinkedList; import java.util.List; -import java.util.logging.Logger; import mage.util.Copier; -import mage.util.Logging; +import org.apache.log4j.Logger; /** * @@ -41,7 +40,7 @@ import mage.util.Logging; */ public class GameStates implements Serializable { - private final static transient Logger logger = Logging.getLogger(GameStates.class.getName()); + private final static transient Logger logger = Logger.getLogger(GameStates.class); // private List states = new LinkedList(); private List states = new LinkedList(); @@ -49,7 +48,7 @@ public class GameStates implements Serializable { public void save(GameState gameState) { // states.add(new Copier().copyCompressed(gameState)); states.add(gameState.copy()); - logger.fine("Saved game state: " + states.size()); + logger.debug("Saved game state: " + states.size()); } public int getSize() { @@ -62,7 +61,7 @@ public class GameStates implements Serializable { states.remove(states.size() - 1); } // return new Copier().uncompressCopy(states.get(index)); - logger.fine("Rolling back state: " + index); + logger.debug("Rolling back state: " + index); return states.get(index); } return null; diff --git a/Mage/src/mage/game/Seat.java b/Mage/src/mage/game/Seat.java index 915983ca88e..3b825932d68 100644 --- a/Mage/src/mage/game/Seat.java +++ b/Mage/src/mage/game/Seat.java @@ -29,8 +29,8 @@ package mage.game; import java.io.Serializable; -import java.util.logging.Logger; import mage.players.Player; +import org.apache.log4j.Logger; /** * @@ -38,7 +38,7 @@ import mage.players.Player; */ public class Seat implements Serializable { - private final static Logger logger = Logger.getLogger(Seat.class.getName()); +// private final static Logger logger = Logger.getLogger(Seat.class); private String playerType; private Player player; diff --git a/Mage/src/mage/game/Table.java b/Mage/src/mage/game/Table.java index 04bb1345b31..9e34b2d08a9 100644 --- a/Mage/src/mage/game/Table.java +++ b/Mage/src/mage/game/Table.java @@ -157,8 +157,12 @@ public class Table implements Serializable { public void leaveTable(UUID playerId) { for (int i = 0; i < numSeats; i++ ) { - if (seats[i].getPlayer().getId().equals(playerId)) + if (seats[i].getPlayer().getId().equals(playerId)) { seats[i].setPlayer(null); + if (state == TableState.STARTING) + state = TableState.WAITING; + break; + } } } diff --git a/Mage/src/mage/game/match/MatchImpl.java b/Mage/src/mage/game/match/MatchImpl.java index b207e6b0c02..755b4172348 100644 --- a/Mage/src/mage/game/match/MatchImpl.java +++ b/Mage/src/mage/game/match/MatchImpl.java @@ -40,7 +40,6 @@ import mage.game.events.TableEvent; import mage.game.events.TableEvent.EventType; import mage.game.events.TableEventSource; import mage.players.Player; -import mage.util.Logging; /** * @@ -48,7 +47,7 @@ import mage.util.Logging; */ public abstract class MatchImpl implements Match { - private final static Logger logger = Logging.getLogger(MatchImpl.class.getName()); +// private final static Logger logger = Logging.getLogger(MatchImpl.class.getName()); private static final int SIDEBOARD_TIME = 180; protected UUID id = UUID.randomUUID(); diff --git a/Mage/src/mage/game/tournament/TournamentImpl.java b/Mage/src/mage/game/tournament/TournamentImpl.java index 01f16f20f78..fd2c418b398 100644 --- a/Mage/src/mage/game/tournament/TournamentImpl.java +++ b/Mage/src/mage/game/tournament/TournamentImpl.java @@ -36,8 +36,6 @@ import java.util.Map; import java.util.Random; import java.util.UUID; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.logging.Level; -import java.util.logging.Logger; import mage.cards.Card; import mage.cards.ExpansionSet; import mage.cards.decks.Deck; @@ -49,6 +47,7 @@ import mage.game.events.TableEvent.EventType; import mage.game.events.TableEventSource; import mage.game.match.Match; import mage.players.Player; +import org.apache.log4j.Logger; /** * @@ -145,7 +144,7 @@ public abstract class TournamentImpl implements Tournament { //TODO: improve this Thread.sleep(1000); } catch (InterruptedException ex) { - Logger.getLogger(TournamentImpl.class.getName()).log(Level.SEVERE, null, ex); + Logger.getLogger(TournamentImpl.class).warn("TournamentImpl playRound error ", ex); break; } }