Debugging code to try to track down the cause of the multiply released
pending ratings. Somehow a game is getting ended twice even though the code should prevent it. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3055 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
//
|
||||
// $Id: GameManager.java,v 1.71 2004/03/06 11:29:19 mdb Exp $
|
||||
// $Id: GameManager.java,v 1.72 2004/07/10 01:32:54 mdb Exp $
|
||||
|
||||
package com.threerings.parlor.game;
|
||||
|
||||
@@ -464,7 +464,8 @@ public class GameManager extends PlaceManager
|
||||
// "[game=" + _gameobj.which() + "].");
|
||||
|
||||
// cancel the game if it was not already over
|
||||
if (_gameobj.state != GameObject.GAME_OVER) {
|
||||
if (_gameobj.state != GameObject.GAME_OVER &&
|
||||
_gameobj.state != GameObject.CANCELLED) {
|
||||
_gameobj.setState(GameObject.CANCELLED);
|
||||
}
|
||||
|
||||
@@ -527,7 +528,10 @@ public class GameManager extends PlaceManager
|
||||
protected void handlePartialNoShow ()
|
||||
{
|
||||
// cancel the game
|
||||
_gameobj.setState(GameObject.CANCELLED);
|
||||
if (_gameobj.state != GameObject.GAME_OVER &&
|
||||
_gameobj.state != GameObject.CANCELLED) {
|
||||
_gameobj.setState(GameObject.CANCELLED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -652,6 +656,15 @@ public class GameManager extends PlaceManager
|
||||
*/
|
||||
public void endGame ()
|
||||
{
|
||||
// TEMP: debug pending rating repeat bug
|
||||
if (_gameEndTrace != null) {
|
||||
Log.warning("Requested to end already ended game " +
|
||||
"[game=" + _gameobj.which() + "].");
|
||||
Thread.dumpStack();
|
||||
}
|
||||
_gameEndTrace = new Exception().getStackTrace();
|
||||
// END TEMP
|
||||
|
||||
if (_gameobj.state != GameObject.IN_PLAY) {
|
||||
Log.debug("Refusing to end game that was not in play " +
|
||||
"[game=" + _gameobj.which() + "].");
|
||||
@@ -660,7 +673,6 @@ public class GameManager extends PlaceManager
|
||||
|
||||
_gameobj.startTransaction();
|
||||
try {
|
||||
|
||||
// let the derived class do its pre-end stuff
|
||||
gameWillEnd();
|
||||
|
||||
@@ -968,6 +980,9 @@ public class GameManager extends PlaceManager
|
||||
/** Our delegate operator to tick AIs. */
|
||||
protected TickAIDelegateOp _tickAIOp;
|
||||
|
||||
/** TEMP: debugging the pending rating double release bug. */
|
||||
protected StackTraceElement[] _gameEndTrace;
|
||||
|
||||
/** A list of all currently active game managers. */
|
||||
protected static ArrayList _managers = new ArrayList();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user