Hmm looks like a bug and/or bad error reporting. I could imagine that it
fails because you have code calling the @GwtIncompatible method. Yes it is
not called at runtime but the AST maintained by the compiler at compile
time might be broken now. I think your code must not be broken once
@GwtIncompatible code has been removed.
What I did in my code was to implement a client version of the method and
then override that method in a sub class to provide a JRE version. I have
then marked that overridden method as incompatible. So when the compiler
does not see the overridden JRE method then the calling code is still valid.
So maybe try something like:
void download() {
Downloader downloader;
if (GWT.isClient()) {
downloader = new GwtDownloader();
} else {
downloader = new JreDownloader();
}
downloader.download();
}
// should NOT be abstract, because code would be invalid if
JreDownloader.download() is not seen by the compiler
class Downloader {
void download() {
// no-op
}
}
class GwtDownloader extends Downloader {
@Override
void download() {
// GWT version
}
}
class JreDownloader extends Downloader {
// When this method is not seen by the Compiler all code is still valid,
as the no-op method would be called.
// (it would not turn red in your IDE if you would delete that overridden
method)
@GwtIncompatible
@Override
void download() {
// JRE version
}
}
Does that help?
-- J.
--
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.