Hi Isomorphic,
please see this minimal testcase (based on builtInDS) showing a unnecessary fetch even though setAutoFetchData(false) is set.
The fetch results in a DS Console warning "13:05:05.810:XRP0:WARN:The ResultSet's cache was invalidated while the following request was outstanding".
Tested with v9.1p_2014-06-29 in FF26 DevMode.
BuiltInDS.java
Change to animals.ds.xml:
Interesting observation 1:
In RPC-Tab of the Dev Console, it is for the unnecessary fetch:
sortBy:[
"-commonName"
]
while it is
sortBy:[
"-scientificName"
]
for the queued fetch.
Interesting observation 2:
If you remove "setFields(scientificName);" (so no setFields() for that ListGrid), the bug is gone.
Interesting observation 3:
If you move "vL.draw();" above the RPC-Manager-block, the bug is gone.
Unfortunately I don't have these options in my app.
Best regards,
Blama
please see this minimal testcase (based on builtInDS) showing a unnecessary fetch even though setAutoFetchData(false) is set.
The fetch results in a DS Console warning "13:05:05.810:XRP0:WARN:The ResultSet's cache was invalidated while the following request was outstanding".
Tested with v9.1p_2014-06-29 in FF26 DevMode.
BuiltInDS.java
Code:
package com.smartgwt.sample.client;
import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.core.KeyIdentifier;
import com.smartgwt.client.data.AdvancedCriteria;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.SortSpecifier;
import com.smartgwt.client.rpc.RPCManager;
import com.smartgwt.client.types.OperatorId;
import com.smartgwt.client.types.SortDirection;
import com.smartgwt.client.util.PageKeyHandler;
import com.smartgwt.client.util.Page;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.grid.ListGridField;
import com.smartgwt.client.widgets.layout.VLayout;
public class BuiltInDS implements EntryPoint {
private VLayout vL;
private ListGrid boundList;
private ListGrid boundList2;
public void onModuleLoad() {
final DataSource animals = DataSource.get("animals");
KeyIdentifier debugKey = new KeyIdentifier();
debugKey.setCtrlKey(true);
debugKey.setKeyName("D");
Page.registerKey(debugKey, new PageKeyHandler() {
public void execute(String keyName) {
SC.showConsole();
}
});
vL = new VLayout(10);
boundList = new ListGrid(animals) {
{
setHeight(400);
setWidth(800);
setAutoFetchData(false);
setInitialSort(new SortSpecifier[] { new SortSpecifier("scientificName", SortDirection.ASCENDING) });
ListGridField commonName = new ListGridField("commonName");
setFields(commonName);
}
};
boundList2 = new ListGrid(animals) {
{
setHeight(400);
setWidth(800);
setAutoFetchData(false);
setSort(new SortSpecifier[] { new SortSpecifier("scientificName", SortDirection.DESCENDING) });
// This has a displayField of "commonName" in the ds.xml file!
ListGridField scientificName = new ListGridField("scientificName");
setFields(scientificName);
}
};
vL.setMembers(boundList, boundList2);
RPCManager.startQueue();
boundList.fetchData(new AdvancedCriteria("lifeSpan", OperatorId.LESS_THAN, 50));
boundList2.fetchData(new AdvancedCriteria("lifeSpan", OperatorId.GREATER_OR_EQUAL, 50));
RPCManager.sendQueue();
vL.draw();
}
}
Code:
<field name="scientificName" title="Scientific Name" type="text" primaryKey="true" required="true" displayField="commonName" />
Interesting observation 1:
In RPC-Tab of the Dev Console, it is for the unnecessary fetch:
sortBy:[
"-commonName"
]
while it is
sortBy:[
"-scientificName"
]
for the queued fetch.
Interesting observation 2:
If you remove "setFields(scientificName);" (so no setFields() for that ListGrid), the bug is gone.
Interesting observation 3:
If you move "vL.draw();" above the RPC-Manager-block, the bug is gone.
Unfortunately I don't have these options in my app.
Best regards,
Blama