aha, that is helpful.  I didn't know about the existence of the
{App}.rpc.log file (is that documented anywhere?)

for anyone reading this who isn't aware, this log file is presumably
created as the compiler works out what types are reachable and whether
they are serializable and goes something like:

com.foo.bar.MyClass
   Serialization status
      Instantiable
   Path
      'com.foo.bar.MyClass' is reachable as a subtype of type
'interface com.bar.whatever.ICommand<T>'
      Started from 'com.itf.shared.actions.ICommand<T>'

and so on.


On Apr 12, 3:05 pm, kozura <koz...@gmail.com> wrote:
> Yes, T must extend a serializable type, as you said otherwise GWT
> can't tell what it might be.  Yes serialization discovery issues are a
> pain...right now you just have to stare through the RPC log and try to
> divine what happened.
>
> On Apr 12, 4:46 am, Jon Vaughan <jsvaug...@gmail.com> wrote:
>
>
>
> > I think the problem is that on this example the type of the payload
> > can be anything (it is not required to be serializable); given that
> > this is possible, GWT must say, OK, then this type itself cannot be
> > serialized (I would like this to fail the compile though somehow)
>
> > On Apr 12, 10:27 am, Jon Vaughan <jsvaug...@gmail.com> wrote:
>
> > > Hi,
>
> > > I have a serialization issue to solve, where a class that is passed to
> > > the client, and is marked as IsSerializable, with a default no arg
> > > constructor, does not end up in the whitelist.  There are no messages
> > > during the gwt compile (at debug level)
>
> > > 1.  Does anyone have any thoughts about how I could automatically test
> > > for, or fail a build, if this is the case?
> > > 2.  Does anyone know how I can get detailed information from GWT about
> > > this type of issue?
> > > 3.  Anybody got any ideas what the problem itself is? :) (Are there
> > > issues with generic types and serialization?  Do I have to explicitly
> > > whitelist the variations I want to use somehow?)
>
> > > Thanks if anyone has the time to look
>
> > > Jon
>
> > > My specific problem is as follows: Type
> > > 'com.itf.shared.actions.ResponseWithPayload' was not included in the
> > > set of types which can be serialized by this SerializationPolicy
>
> > > With the following command pattern style interface (where
> > > SingleQuestion is itself in the whitelist)
>
> > > 1.  The service
>
> > > public interface ApplicationService extends RemoteService {
> > >     <T extends IResponse> T execute(ICommand<T> action);
>
> > > }
>
> > > 2. The command
>
> > > public class SingleQuestionRequest implements
> > > ICommand<ResponseWithPayload<SingleQuestion>>, IsSerializable {
> > >     public SingleQuestionRequest() {
> > >     }
>
> > > }
>
> > > 3.  The response class that doesn't end up in the whitelist
>
> > > public class ResponseWithPayload<T> implements IResponse,
> > > IsSerializable {
> > >     private T payload;
>
> > >     @SuppressWarnings("unused")
> > >     private ResponseWithPayload() {
> > >     }
>
> > >     public ResponseWithPayload(T payload) {
> > >         super();
> > >         this.payload = payload;
> > >     }
>
> > >     public T getPayload() {
> > >         return payload;
> > >     }
>
> > > }

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to