Fix up state transition derp when the server crashes with an error- it shouldn't double-derp

This commit is contained in:
Christian 2013-03-07 19:37:52 -05:00
parent ba5165f86b
commit 845a9c5792
2 changed files with 16 additions and 3 deletions

View file

@ -262,4 +262,9 @@ public class LoadController
boolean hasReachedState(LoaderState state) {
return this.state.ordinal()>=state.ordinal() && this.state!=LoaderState.ERRORED;
}
void forceState(LoaderState newState)
{
this.state = newState;
}
}

View file

@ -776,7 +776,15 @@ public class Loader
public void serverStopped()
{
modController.distributeStateMessage(LoaderState.SERVER_STOPPED);
try
{
modController.transition(LoaderState.SERVER_STOPPED);
}
catch (LoaderException e)
{
modController.forceState(LoaderState.SERVER_STOPPED);
// Discard any exceptions here - they mask other, real, exceptions
}
modController.transition(LoaderState.AVAILABLE);
}