Hi, i found the following issue in 1.2 upgraded to 1.2.1 and the problem persists.

When i filter in the liststore it shows perfectly in the listview, if i try to filter also using the storefilterfield it gives me a nullpointerexpection, but only if i'm filtering in the liststore (and i need this to show different data depending on the type).

This is my example, that i was testing.

public class Teste10 extends VerticalPanel{
private ListView<ModelTest> listview;
private ListStore<ModelTest> store;
private StoreFilterField<ModelTest> filter;

public Teste10() {

List<ModelTest> list = new ArrayList<ModelTest>();

list.add(new ModelTest("A1","X1"));
list.add(new ModelTest("B1","X1"));
list.add(new ModelTest("C1","X1"));
list.add(new ModelTest("D1","X1"));

list.add(new ModelTest("A2","X2"));
list.add(new ModelTest("B2","X2"));
list.add(new ModelTest("C2","X2"));
list.add(new ModelTest("D2","X2"));
//---------------------------------
listview = new ListView<ModelTest>();
listview.setDisplayProperty("name");
store = new ListStore<ModelTest>();
store.setStoreSorter(new StoreSorter<ModelTest>());
//order by name
store.setSortField("name");
store.add(list);
//model has name and type fields
store.filter("type", "X1");

listview.setStore(store);

filter = new StoreFilterField<ModelTest>()
{

@Override
protected boolean doSelect(Store<ModelTest> store,
ModelTest parent, ModelTest record, String property,
String filter) {
String name = record.get("name");

name = name.toLowerCase();

if (name.startsWith(filter.toLowerCase())) {
return true;
}
return false;
}

};

filter.bind(store);

this.add(filter);
this.add(listview);

}

//This is my model if you need it
class ModelTest extends BaseModelData{
public ModelTest(String name, String type) {
setName(name);
setType(type);
}

public String getName(){
return get("name");
}

public String getType(){
return get("type");
}

public void setName(String name){
set("name", name);
}

public void setType(String type){
set("type", type);
}
}
}


This is the error:

[ERROR] Uncaught exception escaped
java.lang.NullPointerException: null
at com.extjs.gxt.ui.client.data.NestedModelUtil.isNestedProperty(NestedModelUtil.java:68)
at com.extjs.gxt.ui.client.data.BaseModelData.get(BaseModelData.java:42)
at com.extjs.gxt.ui.client.store.Store.applyFilters(Store.java:167)
at com.extjs.gxt.ui.client.widget.StoreFilterField.applyFilters(StoreFilterField.java:89)
at com.extjs.gxt.ui.client.widget.StoreFilterField.onFilter(StoreFilterField.java:97)
at com.extjs.gxt.ui.client.widget.StoreFilterField.validateValue(StoreFilterField.java:115)
at com.extjs.gxt.ui.client.widget.form.Field.validate(Field.java:768)
at com.extjs.gxt.ui.client.widget.form.TextField$1.handleEvent(TextField.java:440)
at com.extjs.gxt.ui.client.util.DelayedTask$1.run(DelayedTask.java:52)
at com.google.gwt.user.client.Timer.fireImpl(Timer.java:164)
at com.google.gwt.user.client.Timer.fireAndCatch(Timer.java:150)
at com.google.gwt.user.client.Timer.fire(Timer.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.ie.IDispatchImpl.callMethod(IDispatchImpl.java:126)
at com.google.gwt.dev.shell.ie.IDispatchProxy.invoke(IDispatchProxy.java:155)
at com.google.gwt.dev.shell.ie.IDispatchImpl.Invoke(IDispatchImpl.java:294)
at com.google.gwt.dev.shell.ie.IDispatchImpl.method6(IDispatchImpl.java:194)
at org.eclipse.swt.internal.ole.win32.COMObject.callback6(COMObject.java:117)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1925)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2966)
at com.google.gwt.dev.GWTShell.pumpEventLoop(GWTShell.java:720)
at com.google.gwt.dev.GWTShell.run(GWTShell.java:593)
at com.google.gwt.dev.GWTShell.main(GWTShell.java:357)


If this is not an BUG and I'm doing something wrong, please correct me.


Cheers.