diff --git a/src/com/sheepit/client/Client.java b/src/com/sheepit/client/Client.java index 3394e7d..5f28a40 100644 --- a/src/com/sheepit/client/Client.java +++ b/src/com/sheepit/client/Client.java @@ -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(); diff --git a/src/com/sheepit/client/Server.java b/src/com/sheepit/client/Server.java index 585340e..1d4b1a5 100644 --- a/src/com/sheepit/client/Server.java +++ b/src/com/sheepit/client/Server.java @@ -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(); } diff --git a/src/com/sheepit/client/exception/FermeExceptionNoRendererAvailable.java b/src/com/sheepit/client/exception/FermeExceptionNoRendererAvailable.java new file mode 100644 index 0000000..054ef0f --- /dev/null +++ b/src/com/sheepit/client/exception/FermeExceptionNoRendererAvailable.java @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2017 Laurent CLOUET + * Author Laurent CLOUET + * + * 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_); + } +}