I have a large GWT app and we've been stuck on GWT 2.7 for years. If I try
to update to 2.8 or 2.9, a random selection of our GWT-RPC calls are not
encoded properly by the client. Certain fields in the request become
'undefined' (example below), and cannot be decoded.
We *REALLY* want to upgrade to 2.9, and I am at a loss as to how to fix
this. At this point. I will happily award a *$1000 bounty* for a good
solution!
An example (no rhyme or reason to the types of RPC arguments, this is just
the first one we make but many simpler RPCs fail as well well.
RPC Signature:
public User authenticate(String sessionKey, Integer offset) throws
NotLoggedInException;
*GWT 2.7:*
7|0|6|
http://127.0.0.1:8888/cronometer/|32DF1A25F01F1EA26BACD86E081E664C|com.cronometer.client.CronometerService|authenticate|java.lang.String/2004016611|java.lang.Integer/3438268394|1|2|3|4|2|5|6|0|
6|-420|
*GWT-2.8, 2.9:*
7|0|6|
http://127.0.0.1:8888/cronometer/|32DF1A25F01F1EA26BACD86E081E664C|com.cronometer.client.CronometerService|authenticate|java.lang.String/2004016611|java.lang.Integer/3438268394|1|2|3|4|2|5|6|0|
undefined|undefined|
The request encoding sent to server is identical here except the last two
items have changed to 'undefined'.
This causes decoding to fail with:
WARN 16:40:14.014 [qtp756508433-309] / - Exception while dispatching
incoming RPC call
java.lang.NumberFormatException: Expected type 'int' but received a
non-numerical value: undefined
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.getNumberFormatException(
ServerSerializationStreamReader.java:1027)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.readInt(
ServerSerializationStreamReader.java:551)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.readString(
ServerSerializationStreamReader.java:607)
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:286)
Another illustrative example:
void setParam(String sessionKey, String val) throws NotLoggedInException;
7|0|7|http://127.0.0.1:8888/cronometer/|32DF1A25F01F1EA26BACD86E081E664C|com.cronometer.client.CronometerService|setParam|java.lang.String/2004016611|a358-6aa3-ca6a-daca-308a-3a30-503a-4a50|http://127.0.0.1:8888/|1|2|3|4|2|5|
undefined|6|7|
Again, one of the fields in the request is not set right.
Does anyone have any ideas what's wrong here or how to fix it?
I would log a bug but I cannot reproduce this when I make a small test
project and copy an individual RPC example.
--
You received this message because you are subscribed to the Google Groups "GWT
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-web-toolkit/722bf561-bbd5-4f1f-8378-0a348980012en%40googlegroups.com.