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 google-web-toolkit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/722bf561-bbd5-4f1f-8378-0a348980012en%40googlegroups.com.

Reply via email to