Wednesday, December 17, 2025

Re: Breakpoints get incorrectly hit on page refresh

Ah, thanks Jens.  I'm learning a lot about the GWT compiler!

It would be nice, in these situations, when using the codeserver, if GWT somehow either:
- Marked that line as not being able to put a breakpoint on, or
- Inserted a dummy line of JS code that allowed the breakpoint to be added in the correct place.

Maybe doing either of these just isn't possible.  It's just that I've wasted a bit of time in the past wondering why my breakpoints don't hit.  I usually get around it by adding a line of logging and putting a breakpoint on that.

On Thursday, 18 December 2025 at 1:35:48 am UTC+11 Jens wrote:
In such a case you can keep the breakpoint you set in the Java file in the browser and then open dev tools settings and disable sourcemaps. Then reload the page and you see the original JS code. To better understand it you can also add <style>PRETTY</style> to your root pom.xml below the <launcherDir> configuration of the gwt-maven-plugin.

You will see something like below with the bold line being the breakpoint you set (I have added some comments above the functions):

// thats the class initializer of MyHandler. It is empty because there is no static {} block in Java
function $clinit_App$1MyHandler_0_g$(){
  $clinit_App$1MyHandler_0_g$ = Object;
  $clinit_Object_0_g$();
}

// Thats the default constructor which receives everything that the nested MyHandler class can reach in the outer class App.
function App$1MyHandler_1_g$(this$0_0_g$, val$errorLabel_0_g$, val$nameField_0_g$, val$sendButton_0_g$, val$textToServerLabel_0_g$, val$serverResponseLabel_0_g$, val$dialogBox_0_g$, val$closeButton_0_g$){
  $clinit_App$1MyHandler_0_g$();
  this.this$01_1_g$ = this$0_0_g$;
  this.val$errorLabel2_0_g$ = val$errorLabel_0_g$;
  this.val$nameField3_0_g$ = val$nameField_0_g$;
  this.val$sendButton4_0_g$ = val$sendButton_0_g$;
  this.val$textToServerLabel5_0_g$ = val$textToServerLabel_0_g$;
  this.val$serverResponseLabel6_0_g$ = val$serverResponseLabel_0_g$;
  this.val$dialogBox7_0_g$ = val$dialogBox_0_g$;
  this.val$closeButton8_0_g$ = val$closeButton_0_g$;
  Object_1_g$.call(this);
  this.$init_1443_g$();
}

// defineClass creates an underscore variable which is used to define all the functions of MyHandler.
defineClass_0_g$(5, 1, {5:1, 757:1, 838:1, 891:1, 1:1}, App$1MyHandler_1_g$);

// thats the instance initializer of MyHandler called by the constructor above. It is empty because MyHandler does not have instance variables
_.$init_1443_g$ = function $init_3_g$(){
  $clinit_App$1MyHandler_0_g$();
}
;

// thats the lambda definition that you have used in the delay function. 
_.lambda$0_72_g$ = function lambda$0_1_g$(){
  $clinit_App$1MyHandler_0_g$();
  {
    this.sendNameToServer_1_g$();
  }
}
;

// Here you see how GWT uses the lambda you have defined. 
// GWT still uses for lambdas the same logic as for anonymous classes. 
// So App$1MyHandler$lambda$0$Type_1_g$ is actually a class implementing the functional interface 
// and it receives the outer scope (MyHandler) so its execute() method (from the interface) can 
// call the lambda defined above on MyHandler.
_.onClick_5_g$ = function onClick_1_g$(event_0_g$){
  delay_0_g$(1000, new App$1MyHandler$lambda$0$Type_1_g$(this));
}
;
_.onKeyUp_5_g$ = function onKeyUp_0_g$(event_0_g$){
  if (event_0_g$.getNativeKeyCode_1_g$() == 13) {
    this.sendNameToServer_1_g$();
  }
}
;
_.sendNameToServer_1_g$ = function sendNameToServer_0_g$(){
  $clinit_App$1MyHandler_0_g$();
  var textToServer_0_g$;
  this.val$errorLabel2_0_g$.setText_15_g$('');
  textToServer_0_g$ = this.val$nameField3_0_g$.getText_14_g$();
  if (!isValidName_0_g$(textToServer_0_g$)) {
    this.val$errorLabel2_0_g$.setText_15_g$('Please enter at least four characters');
    return;
  }
  this.val$sendButton4_0_g$.setEnabled_4_g$(false);
  this.val$textToServerLabel5_0_g$.setText_15_g$(textToServer_0_g$);
  this.val$serverResponseLabel6_0_g$.setText_15_g$('');
  this.this$01_1_g$.greetingService_0_g$.greetServer_1_g$(textToServer_0_g$, new App$1MyHandler$1_1_g$(this, this.val$dialogBox7_0_g$, this.val$serverResponseLabel6_0_g$, this.val$closeButton8_0_g$));
}
;

// this creates the class literal for MyHandler
var La_App$1MyHandler_2_classLit_0_g$ = createForClass_0_g$('a', 'App/1MyHandler', 5, Ljava_lang_Object_2_classLit_0_g$);



So when you place the breakpoint at the line you have used JS sourcemaps maps that line to the definition of the lambda and not the call to delay(). I am not sure if there is a right or wrong because it has to choose between the two and generally before you can call delay() the lambda must be created. So I think it is logical that way. In such cases you better place the breakpoint inside the delay() function.

-- J.

Craig Mitchell schrieb am Mittwoch, 17. Dezember 2025 um 09:07:01 UTC+1:
I also just noticed, the breakpoint doesn't get hit when you click the "send" button on the page (when it should get hit).

On Wednesday, 17 December 2025 at 7:03:18 pm UTC+11 Craig Mitchell wrote:
When debugging in Chrome, sometimes my breakpoints get hit on a page refresh, but the code is not executed (nor should it be).

I reproduced the issue with the following:

mvn archetype:generate -DarchetypeGroupId=com.github.nalukit.archetype -DarchetypeVersion=LATEST -DarchetypeArtifactId=modular-springboot-webapp

(use any values, I just entered "a" for everything)

2. Modify the a-client\src\main\java\a\App.java with the following:

2.1 Add this static method:
public static void delay(int delayMs, com.google.gwt.user.client.Command run) {
com.google.gwt.core.client.Scheduler.get().scheduleFixedDelay(() -> {
run.execute();
return false;
}, delayMs);
}

2.2 In the MyHandler class onClick, call the static method:
public void onClick(ClickEvent event) {
delay(1000, () -> {
sendNameToServer();
});
}

3. Start it up:
3.1:  mvn gwt:codeserver -pl *-client -am
3.2:  mvn spring-boot:run -pl *-server -am

4. Open it in Chrome:  http://localhost:8080/

5. Open the Chrome debugger, put a breakpoint on the line:
delay(1000, () -> {

6. Refresh the page.  The breakpoint gets hit.  It looks like this:
Screenshot 2025-12-17 185721.png

It doesn't have a call stack, and if you try to step into it, it doesn't step into the delay method.

Any idea why this occurs?

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/6cd54e22-6158-4e2b-b993-47430a625d27n%40googlegroups.com.

Re: GWT and Payara 6 – javax.servlet vs jakarta.servlet Compatibility Issue

I am currently facing an issue where the package is not found for the following import statement:

import com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet;

I have also tried resolving this by importing external JAR files, but the issue still persists.

Could you please advise on the possible cause of this error and suggest an appropriate solution?

It has already been said. The solution is to use gwt-servlet-jakarta dependency instead of gwt-servet dependency.  

https://central.sonatype.com/artifact/org.gwtproject/gwt-servlet-jakarta

However it requires GWT 2.11 or newer.

-- J.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/6e955239-ab89-4084-9827-1591332b2f18n%40googlegroups.com.

Re: Breakpoints get incorrectly hit on page refresh

In such a case you can keep the breakpoint you set in the Java file in the browser and then open dev tools settings and disable sourcemaps. Then reload the page and you see the original JS code. To better understand it you can also add <style>PRETTY</style> to your root pom.xml below the <launcherDir> configuration of the gwt-maven-plugin.

You will see something like below with the bold line being the breakpoint you set (I have added some comments above the functions):

// thats the class initializer of MyHandler. It is empty because there is no static {} block in Java
function $clinit_App$1MyHandler_0_g$(){
  $clinit_App$1MyHandler_0_g$ = Object;
  $clinit_Object_0_g$();
}

// Thats the default constructor which receives everything that the nested MyHandler class can reach in the outer class App.
function App$1MyHandler_1_g$(this$0_0_g$, val$errorLabel_0_g$, val$nameField_0_g$, val$sendButton_0_g$, val$textToServerLabel_0_g$, val$serverResponseLabel_0_g$, val$dialogBox_0_g$, val$closeButton_0_g$){
  $clinit_App$1MyHandler_0_g$();
  this.this$01_1_g$ = this$0_0_g$;
  this.val$errorLabel2_0_g$ = val$errorLabel_0_g$;
  this.val$nameField3_0_g$ = val$nameField_0_g$;
  this.val$sendButton4_0_g$ = val$sendButton_0_g$;
  this.val$textToServerLabel5_0_g$ = val$textToServerLabel_0_g$;
  this.val$serverResponseLabel6_0_g$ = val$serverResponseLabel_0_g$;
  this.val$dialogBox7_0_g$ = val$dialogBox_0_g$;
  this.val$closeButton8_0_g$ = val$closeButton_0_g$;
  Object_1_g$.call(this);
  this.$init_1443_g$();
}

// defineClass creates an underscore variable which is used to define all the functions of MyHandler.
defineClass_0_g$(5, 1, {5:1, 757:1, 838:1, 891:1, 1:1}, App$1MyHandler_1_g$);

// thats the instance initializer of MyHandler called by the constructor above. It is empty because MyHandler does not have instance variables
_.$init_1443_g$ = function $init_3_g$(){
  $clinit_App$1MyHandler_0_g$();
}
;

// thats the lambda definition that you have used in the delay function. 
_.lambda$0_72_g$ = function lambda$0_1_g$(){
  $clinit_App$1MyHandler_0_g$();
  {
    this.sendNameToServer_1_g$();
  }
}
;

// Here you see how GWT uses the lambda you have defined. 
// GWT still uses for lambdas the same logic as for anonymous classes. 
// So App$1MyHandler$lambda$0$Type_1_g$ is actually a class implementing the functional interface 
// and it receives the outer scope (MyHandler) so its execute() method (from the interface) can 
// call the lambda defined above on MyHandler.
_.onClick_5_g$ = function onClick_1_g$(event_0_g$){
  delay_0_g$(1000, new App$1MyHandler$lambda$0$Type_1_g$(this));
}
;
_.onKeyUp_5_g$ = function onKeyUp_0_g$(event_0_g$){
  if (event_0_g$.getNativeKeyCode_1_g$() == 13) {
    this.sendNameToServer_1_g$();
  }
}
;
_.sendNameToServer_1_g$ = function sendNameToServer_0_g$(){
  $clinit_App$1MyHandler_0_g$();
  var textToServer_0_g$;
  this.val$errorLabel2_0_g$.setText_15_g$('');
  textToServer_0_g$ = this.val$nameField3_0_g$.getText_14_g$();
  if (!isValidName_0_g$(textToServer_0_g$)) {
    this.val$errorLabel2_0_g$.setText_15_g$('Please enter at least four characters');
    return;
  }
  this.val$sendButton4_0_g$.setEnabled_4_g$(false);
  this.val$textToServerLabel5_0_g$.setText_15_g$(textToServer_0_g$);
  this.val$serverResponseLabel6_0_g$.setText_15_g$('');
  this.this$01_1_g$.greetingService_0_g$.greetServer_1_g$(textToServer_0_g$, new App$1MyHandler$1_1_g$(this, this.val$dialogBox7_0_g$, this.val$serverResponseLabel6_0_g$, this.val$closeButton8_0_g$));
}
;

// this creates the class literal for MyHandler
var La_App$1MyHandler_2_classLit_0_g$ = createForClass_0_g$('a', 'App/1MyHandler', 5, Ljava_lang_Object_2_classLit_0_g$);



So when you place the breakpoint at the line you have used JS sourcemaps maps that line to the definition of the lambda and not the call to delay(). I am not sure if there is a right or wrong because it has to choose between the two and generally before you can call delay() the lambda must be created. So I think it is logical that way. In such cases you better place the breakpoint inside the delay() function.

-- J.

Craig Mitchell schrieb am Mittwoch, 17. Dezember 2025 um 09:07:01 UTC+1:
I also just noticed, the breakpoint doesn't get hit when you click the "send" button on the page (when it should get hit).

On Wednesday, 17 December 2025 at 7:03:18 pm UTC+11 Craig Mitchell wrote:
When debugging in Chrome, sometimes my breakpoints get hit on a page refresh, but the code is not executed (nor should it be).

I reproduced the issue with the following:

mvn archetype:generate -DarchetypeGroupId=com.github.nalukit.archetype -DarchetypeVersion=LATEST -DarchetypeArtifactId=modular-springboot-webapp

(use any values, I just entered "a" for everything)

2. Modify the a-client\src\main\java\a\App.java with the following:

2.1 Add this static method:
public static void delay(int delayMs, com.google.gwt.user.client.Command run) {
com.google.gwt.core.client.Scheduler.get().scheduleFixedDelay(() -> {
run.execute();
return false;
}, delayMs);
}

2.2 In the MyHandler class onClick, call the static method:
public void onClick(ClickEvent event) {
delay(1000, () -> {
sendNameToServer();
});
}

3. Start it up:
3.1:  mvn gwt:codeserver -pl *-client -am
3.2:  mvn spring-boot:run -pl *-server -am

4. Open it in Chrome:  http://localhost:8080/

5. Open the Chrome debugger, put a breakpoint on the line:
delay(1000, () -> {

6. Refresh the page.  The breakpoint gets hit.  It looks like this:
Screenshot 2025-12-17 185721.png

It doesn't have a call stack, and if you try to step into it, it doesn't step into the delay method.

Any idea why this occurs?

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/a2d0f3d8-7d87-4c92-bd67-926b2b046128n%40googlegroups.com.

Re: GWT and Payara 6 – javax.servlet vs jakarta.servlet Compatibility Issue

Thank you all for your responses.

I am currently facing an issue where the package is not found for the following import statement:

import com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet;

I have also tried resolving this by importing external JAR files, but the issue still persists.

Could you please advise on the possible cause of this error and suggest an appropriate solution?

Thank you in advance for your support.

Best Regards,
Pankaj Kumar
Java Developer


On Wed, 17 Dec 2025 at 05:10, Craig Mitchell <mail@craig-mitchell.com> wrote:
And if you switch to use Maven, this is what you need:  https://central.sonatype.com/artifact/org.gwtproject/gwt-servlet-jakarta

On Wednesday, 17 December 2025 at 2:11:41 am UTC+11 Colin Alworth wrote:
Note that the one extra step to use the "...rpc.jakarta.RemoteServiceServlet" class is to replace your gwt-servlet artifact with the gwt-servlet-jakarta one. You'll naturally need to update your ant/eclipse configuration to point to these jars, first included in GWT 2.11.0 https://www.gwtproject.org/release-notes.html#Release_Notes_2_11_0

On Tuesday, December 16, 2025 at 9:08:46 AM UTC-6 dav...@googlemail.com wrote:
hi Pankaj

My project is currently using GWT 2.12.1

I create a servelet thus:: 

import com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet;

Everything *just works*

I'll take this opportunity to say what a fantastic job has been done over the years with GWT. My project was created early this century. I had my nose in an already out of date  GWT book (hard copy) and from that used some methods that were already deprecated. Nothing much has been altered over 20 odd years apart from upgrades to the GWT version. I cannot remember much hassle - fantastic job by the devs :-) I wish other projects would follow such a smooth path.

On Tuesday, 16 December 2025 at 11:00:38 UTC Pankaj Kumar wrote:

Dear GWT Community,

We are currently upgrading our application to the latest GWT version using an Eclipse plugin–based, Ant-managed project.

After creating a sample GWT project and deploying it on Payara Server 6, we encounter deployment errors related to the Servlet API (javax.servlet).

After analysis, we observed that:

  • The latest GWT version still depends on javax.servlet

  • However, Payara 6 and newer Java/Jakarta EE versions require jakarta.servlet

Due to this mismatch, the application fails during deployment on Payara 6.

Could you please guide us .

Best Regards,
Pankaj Kumar
Java Developer

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/00894826-62f0-4072-8c88-7b9827d2ac29n%40googlegroups.com.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/CAG5cHfjxLCpThn5OV1ceTXovyBWb4%2BDAu%2B%3DpeuHPnBBMdppmeg%40mail.gmail.com.

Re: Breakpoints get incorrectly hit on page refresh

I also just noticed, the breakpoint doesn't get hit when you click the "send" button on the page (when it should get hit).

On Wednesday, 17 December 2025 at 7:03:18 pm UTC+11 Craig Mitchell wrote:
When debugging in Chrome, sometimes my breakpoints get hit on a page refresh, but the code is not executed (nor should it be).

I reproduced the issue with the following:

mvn archetype:generate -DarchetypeGroupId=com.github.nalukit.archetype -DarchetypeVersion=LATEST -DarchetypeArtifactId=modular-springboot-webapp

(use any values, I just entered "a" for everything)

2. Modify the a-client\src\main\java\a\App.java with the following:

2.1 Add this static method:
public static void delay(int delayMs, com.google.gwt.user.client.Command run) {
com.google.gwt.core.client.Scheduler.get().scheduleFixedDelay(() -> {
run.execute();
return false;
}, delayMs);
}

2.2 In the MyHandler class onClick, call the static method:
public void onClick(ClickEvent event) {
delay(1000, () -> {
sendNameToServer();
});
}

3. Start it up:
3.1:  mvn gwt:codeserver -pl *-client -am
3.2:  mvn spring-boot:run -pl *-server -am

4. Open it in Chrome:  http://localhost:8080/

5. Open the Chrome debugger, put a breakpoint on the line:
delay(1000, () -> {

6. Refresh the page.  The breakpoint gets hit.  It looks like this:
Screenshot 2025-12-17 185721.png

It doesn't have a call stack, and if you try to step into it, it doesn't step into the delay method.

Any idea why this occurs?

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/105e9a59-ebec-4355-996e-29095e8db22fn%40googlegroups.com.

Breakpoints get incorrectly hit on page refresh

When debugging in Chrome, sometimes my breakpoints get hit on a page refresh, but the code is not executed (nor should it be).

I reproduced the issue with the following:

1. Create a sample project with https://github.com/NaluKit/gwt-maven-springboot-archetype:
mvn archetype:generate -DarchetypeGroupId=com.github.nalukit.archetype -DarchetypeVersion=LATEST -DarchetypeArtifactId=modular-springboot-webapp

(use any values, I just entered "a" for everything)

2. Modify the a-client\src\main\java\a\App.java with the following:

2.1 Add this static method:
public static void delay(int delayMs, com.google.gwt.user.client.Command run) {
com.google.gwt.core.client.Scheduler.get().scheduleFixedDelay(() -> {
run.execute();
return false;
}, delayMs);
}

2.2 In the MyHandler class onClick, call the static method:
public void onClick(ClickEvent event) {
delay(1000, () -> {
sendNameToServer();
});
}

3. Start it up:
3.1:  mvn gwt:codeserver -pl *-client -am
3.2:  mvn spring-boot:run -pl *-server -am

4. Open it in Chrome:  http://localhost:8080/

5. Open the Chrome debugger, put a breakpoint on the line:
delay(1000, () -> {

6. Refresh the page.  The breakpoint gets hit.  It looks like this:
Screenshot 2025-12-17 185721.png

It doesn't have a call stack, and if you try to step into it, it doesn't step into the delay method.

Any idea why this occurs?

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/de0b644f-d3ef-4fbf-a621-c25d3e9d4bdfn%40googlegroups.com.

Tuesday, December 16, 2025

Re: GWT and Payara 6 – javax.servlet vs jakarta.servlet Compatibility Issue

And if you switch to use Maven, this is what you need:  https://central.sonatype.com/artifact/org.gwtproject/gwt-servlet-jakarta

On Wednesday, 17 December 2025 at 2:11:41 am UTC+11 Colin Alworth wrote:
Note that the one extra step to use the "...rpc.jakarta.RemoteServiceServlet" class is to replace your gwt-servlet artifact with the gwt-servlet-jakarta one. You'll naturally need to update your ant/eclipse configuration to point to these jars, first included in GWT 2.11.0 https://www.gwtproject.org/release-notes.html#Release_Notes_2_11_0

On Tuesday, December 16, 2025 at 9:08:46 AM UTC-6 dav...@googlemail.com wrote:
hi Pankaj

My project is currently using GWT 2.12.1

I create a servelet thus:: 

import com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet;

Everything *just works*

I'll take this opportunity to say what a fantastic job has been done over the years with GWT. My project was created early this century. I had my nose in an already out of date  GWT book (hard copy) and from that used some methods that were already deprecated. Nothing much has been altered over 20 odd years apart from upgrades to the GWT version. I cannot remember much hassle - fantastic job by the devs :-) I wish other projects would follow such a smooth path.

On Tuesday, 16 December 2025 at 11:00:38 UTC Pankaj Kumar wrote:

Dear GWT Community,

We are currently upgrading our application to the latest GWT version using an Eclipse plugin–based, Ant-managed project.

After creating a sample GWT project and deploying it on Payara Server 6, we encounter deployment errors related to the Servlet API (javax.servlet).

After analysis, we observed that:

  • The latest GWT version still depends on javax.servlet

  • However, Payara 6 and newer Java/Jakarta EE versions require jakarta.servlet

Due to this mismatch, the application fails during deployment on Payara 6.

Could you please guide us .

Best Regards,
Pankaj Kumar
Java Developer

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/00894826-62f0-4072-8c88-7b9827d2ac29n%40googlegroups.com.

Re: GWT and Payara 6 – javax.servlet vs jakarta.servlet Compatibility Issue

Note that the one extra step to use the "...rpc.jakarta.RemoteServiceServlet" class is to replace your gwt-servlet artifact with the gwt-servlet-jakarta one. You'll naturally need to update your ant/eclipse configuration to point to these jars, first included in GWT 2.11.0 https://www.gwtproject.org/release-notes.html#Release_Notes_2_11_0

On Tuesday, December 16, 2025 at 9:08:46 AM UTC-6 dav...@googlemail.com wrote:
hi Pankaj

My project is currently using GWT 2.12.1

I create a servelet thus:: 

import com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet;

Everything *just works*

I'll take this opportunity to say what a fantastic job has been done over the years with GWT. My project was created early this century. I had my nose in an already out of date  GWT book (hard copy) and from that used some methods that were already deprecated. Nothing much has been altered over 20 odd years apart from upgrades to the GWT version. I cannot remember much hassle - fantastic job by the devs :-) I wish other projects would follow such a smooth path.

On Tuesday, 16 December 2025 at 11:00:38 UTC Pankaj Kumar wrote:

Dear GWT Community,

We are currently upgrading our application to the latest GWT version using an Eclipse plugin–based, Ant-managed project.

After creating a sample GWT project and deploying it on Payara Server 6, we encounter deployment errors related to the Servlet API (javax.servlet).

After analysis, we observed that:

  • The latest GWT version still depends on javax.servlet

  • However, Payara 6 and newer Java/Jakarta EE versions require jakarta.servlet

Due to this mismatch, the application fails during deployment on Payara 6.

Could you please guide us .

Best Regards,
Pankaj Kumar
Java Developer

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/4b45df8b-593a-4f11-996c-1b06e798f60en%40googlegroups.com.

Re: GWT and Payara 6 – javax.servlet vs jakarta.servlet Compatibility Issue

hi Pankaj

My project is currently using GWT 2.12.1

I create a servelet thus:: 

import com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet;

Everything *just works*

I'll take this opportunity to say what a fantastic job has been done over the years with GWT. My project was created early this century. I had my nose in an already out of date  GWT book (hard copy) and from that used some methods that were already deprecated. Nothing much has been altered over 20 odd years apart from upgrades to the GWT version. I cannot remember much hassle - fantastic job by the devs :-) I wish other projects would follow such a smooth path.

On Tuesday, 16 December 2025 at 11:00:38 UTC Pankaj Kumar wrote:

Dear GWT Community,

We are currently upgrading our application to the latest GWT version using an Eclipse plugin–based, Ant-managed project.

After creating a sample GWT project and deploying it on Payara Server 6, we encounter deployment errors related to the Servlet API (javax.servlet).

After analysis, we observed that:

  • The latest GWT version still depends on javax.servlet

  • However, Payara 6 and newer Java/Jakarta EE versions require jakarta.servlet

Due to this mismatch, the application fails during deployment on Payara 6.

Could you please guide us .

Best Regards,
Pankaj Kumar
Java Developer

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/821a70ce-f9d3-4da3-bf30-65fada0099d2n%40googlegroups.com.

GWT and Payara 6 – javax.servlet vs jakarta.servlet Compatibility Issue

Dear GWT Community,

We are currently upgrading our application to the latest GWT version using an Eclipse plugin–based, Ant-managed project.

After creating a sample GWT project and deploying it on Payara Server 6, we encounter deployment errors related to the Servlet API (javax.servlet).

After analysis, we observed that:

  • The latest GWT version still depends on javax.servlet

  • However, Payara 6 and newer Java/Jakarta EE versions require jakarta.servlet

Due to this mismatch, the application fails during deployment on Payara 6.

Could you please guide us .

Best Regards,
Pankaj Kumar
Java Developer

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/0832f6d0-07b0-4ee9-bab1-b1269cb0b828n%40googlegroups.com.

Thursday, December 11, 2025

Re: GWT project using Github codespaces

The file is https://github.com/gwtproject/gwt/blob/main/dev/codeserver/java/com/google/gwt/dev/codeserver/stub.nocache.js and as you can see your only option would be to replace the file (try copying it into your source tree at the very same location) as the logic cannot be configured.

Otherwise you might be able to use a browser plugin like requestly which allows you to redirect HTTP calls transparently.

https://docs.requestly.com/general/http-rules/rule-types/redirect-rule

-- J.

jamal....@gmail.com schrieb am Donnerstag, 11. Dezember 2025 um 13:38:09 UTC+1:
Hi,
I am testing Github codespaces IDE and check if I can use it and if it works with GWT setup. I use gwt-maven-archetypes 'modular-webapp'. I start codeserver then jetty server. The problem is in Github codespaces codeserver is accessible at a URL that is different from the default. Example:
Codeserver URL: 
https://example-app-some-random-string-9876.app.github.dev 


Is there a way I cam make  app.nocache.js generate the desired URL?

Thanks


 

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/5de55b27-db71-455a-9d60-2568ae4f12cdn%40googlegroups.com.

GWT project using Github codespaces

Hi,
I am testing Github codespaces IDE and check if I can use it and if it works with GWT setup. I use gwt-maven-archetypes 'modular-webapp'. I start codeserver then jetty server. The problem is in Github codespaces codeserver is accessible at a URL that is different from the default. Example:
Codeserver URL: 
https://example-app-some-random-string-9876.app.github.dev 
Jetty container URL: https://example-app-some-random-string-8080.app.github.dev

So the problem app.nocache.js generates nocacheUrl as 'https://example-app-some-random-string-8080.app.github.dev:9876' where it should be 'https://example-app-some-random-string-9876.app.github.dev'

Is there a way I cam make  app.nocache.js generate the desired URL?

Thanks


 

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/55c95a11-44ff-40ad-af2c-c22e5d6e596bn%40googlegroups.com.

Wednesday, December 10, 2025

Re: JsInterop wrapping of D3 js



On Wednesday, December 10, 2025 at 9:09:13 PM UTC+1 David Nouls wrote:
From what I remember, Google stopped GWT during the time of the conflict between SUN and Microsoft. They had litigation going on around the Java support in IE. I always was under the impression that Google was trying to protect themselves against SUN for the same reason.

Why would they have developed J2Cl then? It doesn't make sense.

My recollection is that the people doing frontend work knew JS and CSS and Closure and didn't want to change (and it was probably a bit hard to hire for GWT), so the goal was to translate Java to JS to produce a JS lib, with Closure typing, for use with their existing pipeline. They initially tried to add it to GWT proper (IIRC that's how they did it in Inbox at the time), but it wasn't conclusive.
Also, their frontend pipeline for Closure is full of optimizations around updates, where browsers only download a "diff" of what changed since the version they had in cache. GWT is duplicating many of those things that they already had, and probably isn't as good. Also the fact that GWT is kind of a "monolithic" build pipeline.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/3933ee79-3afc-4a5b-8d58-98c631e5c4ean%40googlegroups.com.

Re: JsInterop wrapping of D3 js

That's why they created Dart


On Wed, Dec 10, 2025 at 8:08 PM, David Nouls
<david.nouls@gmail.com> wrote:
From what I remember, Google stopped GWT during the time of the conflict between SUN and Microsoft. They had litigation going on around the Java support in IE. I always was under the impression that Google was trying to protect themselves against SUN for the same reason.
On Dec 10, 2025 at 20:39 +0100, 'Tim Macpherson' via GWT Users <google-web-toolkit@googlegroups.com>, wrote:
, I gather the Google move re gwt was related to angular and maybe react in some way ?  Incompatible probably wrong term.
I know D3 is incompatible with react, it has optimal rendering and shadow dom would only confuse things. That's a different issue.



On Wed, Dec 10, 2025 at 7:28 PM, Colin Alworth
<colin@colinalworth.com> wrote:
I'd need you to define "incompatible" for this discussion to make sense - the GWT library I described above is used by a (much larger) React app, and I know of several other apps with react+gwt integration (including GWT/Java tooling which lets you build react components in Java). There certainly can be paradigm problems in taking a GWT app and shoving React code into it or vice versa, but the same can be said for taking a plain JS app and adding React, etc - and no one ever says that React is incompatible with JS (though it certainly suggests a particular style of JS).

On Wednesday, December 10, 2025 at 1:24:39 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
Another factor was emegence of angular then react, which are incompatible with GWT but considered essential by Google at that time ? 


On Wed, Dec 10, 2025 at 2:59 AM, Colin Alworth
It is probably worth noting that while Google did drop GWT the compiler and runtime, they continue to ship GWT's JRE emulation in Google Sheets and Gmail (via J2CL and Closure Compiler) in decently large JS files, with a lot of other code that plausibly looks like it shares (1000+ classes each). Java's distinctive Object.toString() behavior makes it pretty easy to find in compiled JS. As Google has described in the past, this lets them write the core runtime for an app in a single language, Java, and translate to build the UI in the most appropriate language for the platform they are deploying to.

I'm not aware of many GWT apps that are being used like that, but there are some. For one of them, we built and open sourced https://github.com/Vertispan/jsinterop-ts-defs/ to do the opposite of what you're discussing with d3.js - take Java types with some JsInterop annotations, and generate .d.ts files from them. This way, JS/TS developers can import those types and get rich type information about the Java we compiled to JS. There are a few custom annotations that we've found helpful to add on, but for the most part this tool works with any GWT app using JsInterop to expose some classes/functions as a library.

I don't think that is what Google is doing - mostly because they've historically resisted efforts to generate externs from JsInterop, preferring to read Closure-annotated JS and generate Java from it. It has worked well for us though, as there aren't a lot of JS/TS projects outside of Google that are suitable to being passed through Closure on their way to production.
On Tuesday, December 9, 2025 at 5:46:54 PM UTC-6 ma...@craig-mitchell.com wrote:
Re: Why did Google drop GWT for it to be superceded by this?

My 2 cents worth of guessing is that because GWT protects developers from learning all about JS, developers might not get the most out of JS.  Eg: A Java developer sees no issue using integers, but JS doesn't support them, so GWT adds complexity in JS to simulate them.  Companies that want the bleeding edge performance might not like this.

But, as I said, I'm only guessing here, I've never worked at Google.

On Wednesday, 10 December 2025 at 5:07:55 am UTC+11 Tim Macpherson wrote:
As a  GWT user also using TS when necessary:
refactoring: WWD in eclipse for TS,  vs  VScode, no noticeable difference  ? essentially nothing useful in either ?
Typing - all must be done manually, syntax is  back to front: name then type.

Why did Google drop GWT for it to be superceded by this?
About the same time they were trying to launch Dart but that went nowhere afaik


On Mon, Dec 8, 2025 at 11:47 PM, Craig Mitchell
I'm not sure I understand the question.  I've used TS in one project, and GWT in another.  Never in the same project.  As far as static typing goes, Java (GWT) wins hands down, as it is a native to the language.

On Sunday, 7 December 2025 at 6:13:13 am UTC+11 Tim Macpherson wrote:
I'm using GWT and TS together, both involve static typing and ide support around that. Basic question is: does anyone else do this (I assume yes) and how do they compare?


On Sat, Dec 6, 2025 at 9:43 AM, 'RobW' via GWT Users
Question  possibly of interest is how GWT stands against Typescript which seems to be now established as a  front end standard. 

I'm really not sure why Typescript is relevant - if I were coding front-end in JS or TS, then yes I'd think about which syntax and features (type checking etc) were better. But in GWT I'm coding in Java. I don't really care what the compiles down to as long as it works. OK, when debugging I do see the JS output, but I'm never mod'ing that directly. On occasion, to use a lib, I'll quickly craft some JSNI bindings for the methods I need. But that's as close as I go to the JS layer. 

--
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-tool...@googlegroups.com.

To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit

--
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+unsubscribe@googlegroups.com.
To view this discussion visit
https://groups.google.com/d/msgid/google-web-toolkit/1bbf7e16-900d-4230-8c09-e0645ab83053n%40googlegroups.com
.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/1326152705.39084.1765395560387%40mail.yahoo.com.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/81836c84-ae67-44fa-b7a0-c01ac55324b3%40Spark.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/1497397481.4344802.1765397685629%40mail.yahoo.com.

Re: JsInterop wrapping of D3 js

From what I remember, Google stopped GWT during the time of the conflict between SUN and Microsoft. They had litigation going on around the Java support in IE. I always was under the impression that Google was trying to protect themselves against SUN for the same reason.
On Dec 10, 2025 at 20:39 +0100, 'Tim Macpherson' via GWT Users <google-web-toolkit@googlegroups.com>, wrote:
, I gather the Google move re gwt was related to angular and maybe react in some way ?  Incompatible probably wrong term.
I know D3 is incompatible with react, it has optimal rendering and shadow dom would only confuse things. That's a different issue.



On Wed, Dec 10, 2025 at 7:28 PM, Colin Alworth
<colin@colinalworth.com> wrote:
I'd need you to define "incompatible" for this discussion to make sense - the GWT library I described above is used by a (much larger) React app, and I know of several other apps with react+gwt integration (including GWT/Java tooling which lets you build react components in Java). There certainly can be paradigm problems in taking a GWT app and shoving React code into it or vice versa, but the same can be said for taking a plain JS app and adding React, etc - and no one ever says that React is incompatible with JS (though it certainly suggests a particular style of JS).

On Wednesday, December 10, 2025 at 1:24:39 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
Another factor was emegence of angular then react, which are incompatible with GWT but considered essential by Google at that time ? 


On Wed, Dec 10, 2025 at 2:59 AM, Colin Alworth
It is probably worth noting that while Google did drop GWT the compiler and runtime, they continue to ship GWT's JRE emulation in Google Sheets and Gmail (via J2CL and Closure Compiler) in decently large JS files, with a lot of other code that plausibly looks like it shares (1000+ classes each). Java's distinctive Object.toString() behavior makes it pretty easy to find in compiled JS. As Google has described in the past, this lets them write the core runtime for an app in a single language, Java, and translate to build the UI in the most appropriate language for the platform they are deploying to.

I'm not aware of many GWT apps that are being used like that, but there are some. For one of them, we built and open sourced https://github.com/Vertispan/jsinterop-ts-defs/ to do the opposite of what you're discussing with d3.js - take Java types with some JsInterop annotations, and generate .d.ts files from them. This way, JS/TS developers can import those types and get rich type information about the Java we compiled to JS. There are a few custom annotations that we've found helpful to add on, but for the most part this tool works with any GWT app using JsInterop to expose some classes/functions as a library.

I don't think that is what Google is doing - mostly because they've historically resisted efforts to generate externs from JsInterop, preferring to read Closure-annotated JS and generate Java from it. It has worked well for us though, as there aren't a lot of JS/TS projects outside of Google that are suitable to being passed through Closure on their way to production.
On Tuesday, December 9, 2025 at 5:46:54 PM UTC-6 ma...@craig-mitchell.com wrote:
Re: Why did Google drop GWT for it to be superceded by this?

My 2 cents worth of guessing is that because GWT protects developers from learning all about JS, developers might not get the most out of JS.  Eg: A Java developer sees no issue using integers, but JS doesn't support them, so GWT adds complexity in JS to simulate them.  Companies that want the bleeding edge performance might not like this.

But, as I said, I'm only guessing here, I've never worked at Google.

On Wednesday, 10 December 2025 at 5:07:55 am UTC+11 Tim Macpherson wrote:
As a  GWT user also using TS when necessary:
refactoring: WWD in eclipse for TS,  vs  VScode, no noticeable difference  ? essentially nothing useful in either ?
Typing - all must be done manually, syntax is  back to front: name then type.

Why did Google drop GWT for it to be superceded by this?
About the same time they were trying to launch Dart but that went nowhere afaik


On Mon, Dec 8, 2025 at 11:47 PM, Craig Mitchell
I'm not sure I understand the question.  I've used TS in one project, and GWT in another.  Never in the same project.  As far as static typing goes, Java (GWT) wins hands down, as it is a native to the language.

On Sunday, 7 December 2025 at 6:13:13 am UTC+11 Tim Macpherson wrote:
I'm using GWT and TS together, both involve static typing and ide support around that. Basic question is: does anyone else do this (I assume yes) and how do they compare?


On Sat, Dec 6, 2025 at 9:43 AM, 'RobW' via GWT Users
Question  possibly of interest is how GWT stands against Typescript which seems to be now established as a  front end standard. 

I'm really not sure why Typescript is relevant - if I were coding front-end in JS or TS, then yes I'd think about which syntax and features (type checking etc) were better. But in GWT I'm coding in Java. I don't really care what the compiles down to as long as it works. OK, when debugging I do see the JS output, but I'm never mod'ing that directly. On occasion, to use a lib, I'll quickly craft some JSNI bindings for the methods I need. But that's as close as I go to the JS layer. 

--
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-tool...@googlegroups.com.

To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit

--
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+unsubscribe@googlegroups.com.
To view this discussion visit
https://groups.google.com/d/msgid/google-web-toolkit/1bbf7e16-900d-4230-8c09-e0645ab83053n%40googlegroups.com
.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/1326152705.39084.1765395560387%40mail.yahoo.com.

Re: JsInterop wrapping of D3 js

, I gather the Google move re gwt was related to angular and maybe react in some way ?  Incompatible probably wrong term.
I know D3 is incompatible with react, it has optimal rendering and shadow dom would only confuse things. That's a different issue.



On Wed, Dec 10, 2025 at 7:28 PM, Colin Alworth
<colin@colinalworth.com> wrote:
I'd need you to define "incompatible" for this discussion to make sense - the GWT library I described above is used by a (much larger) React app, and I know of several other apps with react+gwt integration (including GWT/Java tooling which lets you build react components in Java). There certainly can be paradigm problems in taking a GWT app and shoving React code into it or vice versa, but the same can be said for taking a plain JS app and adding React, etc - and no one ever says that React is incompatible with JS (though it certainly suggests a particular style of JS).

On Wednesday, December 10, 2025 at 1:24:39 PM UTC-6 tim_mac...@yahoo.co.uk wrote:
Another factor was emegence of angular then react, which are incompatible with GWT but considered essential by Google at that time ? 


On Wed, Dec 10, 2025 at 2:59 AM, Colin Alworth
It is probably worth noting that while Google did drop GWT the compiler and runtime, they continue to ship GWT's JRE emulation in Google Sheets and Gmail (via J2CL and Closure Compiler) in decently large JS files, with a lot of other code that plausibly looks like it shares (1000+ classes each). Java's distinctive Object.toString() behavior makes it pretty easy to find in compiled JS. As Google has described in the past, this lets them write the core runtime for an app in a single language, Java, and translate to build the UI in the most appropriate language for the platform they are deploying to.

I'm not aware of many GWT apps that are being used like that, but there are some. For one of them, we built and open sourced https://github.com/Vertispan/jsinterop-ts-defs/ to do the opposite of what you're discussing with d3.js - take Java types with some JsInterop annotations, and generate .d.ts files from them. This way, JS/TS developers can import those types and get rich type information about the Java we compiled to JS. There are a few custom annotations that we've found helpful to add on, but for the most part this tool works with any GWT app using JsInterop to expose some classes/functions as a library.

I don't think that is what Google is doing - mostly because they've historically resisted efforts to generate externs from JsInterop, preferring to read Closure-annotated JS and generate Java from it. It has worked well for us though, as there aren't a lot of JS/TS projects outside of Google that are suitable to being passed through Closure on their way to production.
On Tuesday, December 9, 2025 at 5:46:54 PM UTC-6 ma...@craig-mitchell.com wrote:
Re: Why did Google drop GWT for it to be superceded by this?

My 2 cents worth of guessing is that because GWT protects developers from learning all about JS, developers might not get the most out of JS.  Eg: A Java developer sees no issue using integers, but JS doesn't support them, so GWT adds complexity in JS to simulate them.  Companies that want the bleeding edge performance might not like this.

But, as I said, I'm only guessing here, I've never worked at Google.

On Wednesday, 10 December 2025 at 5:07:55 am UTC+11 Tim Macpherson wrote:
As a  GWT user also using TS when necessary:
refactoring: WWD in eclipse for TS,  vs  VScode, no noticeable difference  ? essentially nothing useful in either ?
Typing - all must be done manually, syntax is  back to front: name then type.

Why did Google drop GWT for it to be superceded by this?
About the same time they were trying to launch Dart but that went nowhere afaik


On Mon, Dec 8, 2025 at 11:47 PM, Craig Mitchell
I'm not sure I understand the question.  I've used TS in one project, and GWT in another.  Never in the same project.  As far as static typing goes, Java (GWT) wins hands down, as it is a native to the language.

On Sunday, 7 December 2025 at 6:13:13 am UTC+11 Tim Macpherson wrote:
I'm using GWT and TS together, both involve static typing and ide support around that. Basic question is: does anyone else do this (I assume yes) and how do they compare?


On Sat, Dec 6, 2025 at 9:43 AM, 'RobW' via GWT Users
Question  possibly of interest is how GWT stands against Typescript which seems to be now established as a  front end standard. 

I'm really not sure why Typescript is relevant - if I were coding front-end in JS or TS, then yes I'd think about which syntax and features (type checking etc) were better. But in GWT I'm coding in Java. I don't really care what the compiles down to as long as it works. OK, when debugging I do see the JS output, but I'm never mod'ing that directly. On occasion, to use a lib, I'll quickly craft some JSNI bindings for the methods I need. But that's as close as I go to the JS layer. 

--
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-tool...@googlegroups.com.

To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit

--
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-tool...@googlegroups.com.
To view this discussion visit

--
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+unsubscribe@googlegroups.com.
To view this discussion visit
https://groups.google.com/d/msgid/google-web-toolkit/1bbf7e16-900d-4230-8c09-e0645ab83053n%40googlegroups.com
.

--
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+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/1326152705.39084.1765395560387%40mail.yahoo.com.