From 55142ffc2fe177505d284ef5285f4766714935b2 Mon Sep 17 00:00:00 2001 From: Leif Åstrand Date: Wed, 19 Dec 2012 08:59:07 +0200 Subject: Fix regressions in RPC handling (#10549) * Generate parameter types based on RPC interface instead of defining interface * Don't try to find parameter types for JavaScript RPC invocations Change-Id: I0e61e74f57dd34665c8befe826aa2759aeb01b54 --- .../vaadin/server/widgetsetutils/metadata/ServerRpcVisitor.java | 2 +- client/src/com/vaadin/client/ApplicationConnection.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/ServerRpcVisitor.java b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/ServerRpcVisitor.java index e14e8234d5..f444abf0ad 100644 --- a/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/ServerRpcVisitor.java +++ b/client-compiler/src/com/vaadin/server/widgetsetutils/metadata/ServerRpcVisitor.java @@ -38,7 +38,7 @@ public class ServerRpcVisitor extends TypeVisitor { for (JMethod method : methods) { ClientRpcVisitor.checkReturnType(logger, method); bundle.setNeedsDelayedInfo(type, method); - bundle.setNeedsParamTypes(subType, method); + bundle.setNeedsParamTypes(type, method); JType[] parameterTypes = method.getParameterTypes(); for (JType paramType : parameterTypes) { diff --git a/client/src/com/vaadin/client/ApplicationConnection.java b/client/src/com/vaadin/client/ApplicationConnection.java index 00b0d75c6c..2e8387c5da 100644 --- a/client/src/com/vaadin/client/ApplicationConnection.java +++ b/client/src/com/vaadin/client/ApplicationConnection.java @@ -2396,7 +2396,8 @@ public class ApplicationConnection { JSONArray paramJson = new JSONArray(); Type[] parameterTypes = null; - if (!isLegacyVariableChange(invocation)) { + if (!isLegacyVariableChange(invocation) + && !isJavascriptRpc(invocation)) { try { Type type = new Type(invocation.getInterfaceName(), null); @@ -2457,6 +2458,12 @@ public class ApplicationConnection { makeUidlRequest(req.toString(), extraParams, forceSync); } + private boolean isJavascriptRpc(MethodInvocation invocation) { + String connectorId = invocation.getConnectorId(); + ServerConnector connector = connectorMap.getConnector(connectorId); + return connector instanceof HasJavaScriptConnectorHelper; + } + private boolean isLegacyVariableChange(MethodInvocation invocation) { return ApplicationConstants.UPDATE_VARIABLE_METHOD.equals(invocation .getInterfaceName()) -- cgit v1.2.3