Hi.
I have a memory leak in my application. It's leaks for about 2Mb per minute.
Can somebody give some advice how I can avoid this?
Here is a test case:
SmartClient Version: 8.1/LGPL Development Only (built 2010-06-19)
GWT 2.0.3
Windows XP SP3 IE7/8
Without DataArrivedHandler it's not leaking...
Thanks, and sorry for my english =)
I have a memory leak in my application. It's leaks for about 2Mb per minute.
Can somebody give some advice how I can avoid this?
Here is a test case:
SmartClient Version: 8.1/LGPL Development Only (built 2010-06-19)
GWT 2.0.3
Windows XP SP3 IE7/8
Code:
public class TestCase implements EntryPoint {
private class Fetcher extends Timer {
private ListGrid grid;
public Fetcher(ListGrid grid) {
this.grid = grid;
}
public void run() {
grid.invalidateCache();
}
}
private void test() {
;//NOP
}
public void onModuleLoad() {
final ListGrid grid = new ListGrid();
RestDataSource tableDataSource = new RestDataSource();
tableDataSource.setDataURL(Configuration.webService + "TestData");
tableDataSource.setDataFormat(DSDataFormat.JSON);
OperationBinding fetch = new OperationBinding();
fetch.setOperationType(DSOperationType.FETCH);
fetch.setDataProtocol(DSProtocol.POSTMESSAGE);
tableDataSource.setOperationBindings(fetch);
DSRequest request = new DSRequest();
request.setUseSimpleHttp(true);
tableDataSource.setRequestProperties(request);
tableDataSource.addField(new DataSourceTextField("Col0"));
tableDataSource.addField(new DataSourceTextField("Col1"));
tableDataSource.addField(new DataSourceTextField("Col2"));
tableDataSource.addField(new DataSourceTextField("Col3"));
tableDataSource.addField(new DataSourceTextField("Col4"));
grid.setDataSource(tableDataSource);
grid.setAutoFetchData(true);
grid.setShowRollOver(false);
grid.setWidth100();
grid.setHeight100();
grid.addDataArrivedHandler(new DataArrivedHandler() {
public void onDataArrived(DataArrivedEvent event) {
test();
}
});
VLayout layout = new VLayout();
layout.setHeight100();
layout.setWidth100();
layout.addMember(grid);
Canvas screen = new Canvas();
screen.setHeight100();
screen.setWidth100();
screen.addChild(layout);
screen.draw();
Fetcher fetcher = new Fetcher(grid);
fetcher.scheduleRepeating(2000);
}
}
Thanks, and sorry for my english =)
Comment