Add nice error message when renderer is not available

This commit is contained in:
Laurent Clouet
2017-06-06 13:38:48 +02:00
parent 54a1d0130d
commit 6ccb0374fd
3 changed files with 46 additions and 0 deletions

View File

@@ -34,6 +34,7 @@ import com.sheepit.client.Error.ServerCode;
import com.sheepit.client.Error.Type;
import com.sheepit.client.exception.FermeException;
import com.sheepit.client.exception.FermeExceptionBadResponseFromServer;
import com.sheepit.client.exception.FermeExceptionNoRendererAvailable;
import com.sheepit.client.exception.FermeExceptionNoRightToRender;
import com.sheepit.client.exception.FermeExceptionNoSession;
import com.sheepit.client.exception.FermeExceptionNoSpaceLeftOnDevice;
@@ -188,6 +189,17 @@ public class Client {
}
}
}
catch (FermeExceptionNoRendererAvailable e) {
this.gui.error(Error.humanString(Error.Type.RENDERER_NOT_AVAILABLE));
// should wait forever to actually display the message to the user
while (true) {
try {
Thread.sleep(100000);
}
catch (InterruptedException e1) {
}
}
}
catch (FermeExceptionNoSession e) {
// User has no session need to re-authenticate
ret = this.server.getConfiguration();

View File

@@ -74,6 +74,7 @@ import com.sheepit.client.Configuration.ComputeType;
import com.sheepit.client.Error.ServerCode;
import com.sheepit.client.exception.FermeException;
import com.sheepit.client.exception.FermeExceptionBadResponseFromServer;
import com.sheepit.client.exception.FermeExceptionNoRendererAvailable;
import com.sheepit.client.exception.FermeExceptionNoRightToRender;
import com.sheepit.client.exception.FermeExceptionNoSession;
import com.sheepit.client.exception.FermeExceptionNoSpaceLeftOnDevice;
@@ -331,6 +332,9 @@ public class Server extends Thread implements HostnameVerifier, X509TrustManager
else if (ret == ServerCode.JOB_REQUEST_ERROR_DEAD_SESSION) {
throw new FermeExceptionNoSession();
}
else if (ret == ServerCode.JOB_REQUEST_ERROR_RENDERER_NOT_AVAILABLE) {
throw new FermeExceptionNoRendererAvailable();
}
else if (ret == ServerCode.JOB_REQUEST_ERROR_SESSION_DISABLED) {
throw new FermeExceptionSessionDisabled();
}

View File

@@ -0,0 +1,30 @@
/*
* Copyright (C) 2017 Laurent CLOUET
* Author Laurent CLOUET <laurent.clouet@nopnop.net>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; version 2
* of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package com.sheepit.client.exception;
public class FermeExceptionNoRendererAvailable extends FermeException {
public FermeExceptionNoRendererAvailable() {
super();
}
public FermeExceptionNoRendererAvailable(String message_) {
super(message_);
}
}