Found in GWT Release:
GWT - 2.4.0
Encountered on OS / Browser :
Windows 7 with IE9
Detailed description (please be as specific as possible):
Out Of Heap exception occurred after left GWT App to run overnight, Diagnosis with MemoryAnalyzer, found that upon crash there are 1.6 million instance of com.google.gwt.http.client.RequestBuilder , each size exactly at 1208 bytes.
Further checking reveal to me that those request are GWT Action call to server to poll current server health status. poll trigger by com.google.gwt.user.client.Timer every 1 sec
Shortest code snippet which demonstrates issue:
@Inject
public MainPresenter(final EventBus eventBus, final MyView view,
final MyProxy proxy, PlaceManager placeManager,
final DispatchAsync dispatcher) {
super(eventBus, view, proxy);
this.placeManager = placeManager;
this.dispatcher = dispatcher;
getView().setUiHandlers(this);
setupSeverHealthQuerier(dispatcher);
}
private void setupSeverHealthQuerier(final DispatchAsync dispatcher) {
int delayInSec = UserPreference.HealthCheckInterval;
serverHealthChecker = new Timer() {
@Override
public void run() {
dispatcher.execute(new GetServerHealth(ServerName.ReplayServerGTU),
new AsyncCallback<GetServerHealthResult>() {
@Override
public void onFailure(Throwable caught) {
caught.printStackTrace();
}
@Override
public void onSuccess(GetServerHealthResult result) {
getView().setServerHealthPic(result.getHealth());
}
});
}
};
serverHealthChecker.scheduleRepeating(delayInSec * 1000);
}
Here is the Heap Report:
https://i.stack.imgur.com/C2qJy.png
- thanks for the 10 reputation-to-post-image rule