aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2012-04-02 22:32:49 +0300
committerArtur Signell <artur@vaadin.com>2012-04-05 00:08:19 +0300
commit56c932f02679d525da5a1ec3de3669a0482456ad (patch)
tree05cb368d5e0f1edb70115e29e091b6632680e9c6
parenta6e20937c6167beb49a3210897216d6982a2e364 (diff)
downloadvaadin-framework-56c932f02679d525da5a1ec3de3669a0482456ad.tar.gz
vaadin-framework-56c932f02679d525da5a1ec3de3669a0482456ad.zip
Log error for missing RPC manager or target (#8590)
-rw-r--r--src/com/vaadin/terminal/gwt/server/AbstractCommunicationManager.java6
-rw-r--r--src/com/vaadin/terminal/gwt/server/ServerRpcManager.java22
2 files changed, 19 insertions, 9 deletions
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<T> 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<T> implements RpcManager {
return null;
}
+ private static Logger getLogger() {
+ return Logger.getLogger(ServerRpcManager.class.getName());
+ }
+
}