From: Artur Signell Date: Mon, 2 Apr 2012 19:32:49 +0000 (+0300) Subject: Log error for missing RPC manager or target (#8590) X-Git-Tag: 7.0.0.alpha2~154 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=56c932f02679d525da5a1ec3de3669a0482456ad;p=vaadin-framework.git Log error for missing RPC manager or target (#8590) --- diff --git a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java index f0c218eff6..a7bd69d620 100644 --- a/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java +++ b/src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java @@ -1560,9 +1560,9 @@ public abstract class AbstractCommunicationManager implements Serializable { if (c instanceof RpcTarget) { ServerRpcManager.applyInvocation((RpcTarget) c, invocation); } else { - // TODO better exception? - throw new RuntimeException("No RPC target for connector " - + invocation.getConnectorId()); + logger.log(Level.WARNING, "RPC call received for connector " + + c.getClass().getName() + " (" + c.getConnectorId() + + ") but the connector is not a ServerRpcTarget"); } } diff --git a/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java b/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java index 061f079ca0..cdab4b327f 100644 --- a/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java +++ b/src/com/vaadin/terminal/gwt/server/ServerRpcManager.java @@ -9,6 +9,8 @@ import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.logging.Level; +import java.util.logging.Logger; import com.vaadin.terminal.gwt.client.Connector; import com.vaadin.terminal.gwt.client.communication.MethodInvocation; @@ -82,14 +84,18 @@ public class ServerRpcManager implements RpcManager { if (manager != null) { manager.applyInvocation(invocation); } else { - throw new RuntimeException( - "RPC call to a target without an RPC manager."); + getLogger() + .log(Level.WARNING, + "RPC call received for RpcTarget " + + target.getClass().getName() + + " (" + + invocation.getConnectorId() + + ") but the target has not registered any RPC interfaces"); } } catch (ClassNotFoundException e) { - throw new RuntimeException( - "No RPC manager registered for RPC interface " - + invocation.getInterfaceName() + " of the target " - + target + "."); + throw new RuntimeException("Class for RPC interface " + + invocation.getInterfaceName() + " of the target " + + target + " could not be found."); } } @@ -190,4 +196,8 @@ public class ServerRpcManager implements RpcManager { return null; } + private static Logger getLogger() { + return Logger.getLogger(ServerRpcManager.class.getName()); + } + }