Wrong handling of zeros by operators IN_SET and OR

Hi all,

SmartGWT version: 2.5.2011-05-02-EVAL.

Sample code:

import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.DataSourceField;
import com.smartgwt.client.types.FieldType;
import com.smartgwt.client.types.OperatorId;
import com.smartgwt.client.widgets.Canvas;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.SelectItem;
import com.smartgwt.client.widgets.layout.VLayout;

public class SelectItemEntryPoint implements EntryPoint {
    private DynamicForm form;

    public Canvas getViewPanel() {      
        form = new DynamicForm();
        
        final DataSource ods = new DataSource();
        DataSourceField dsField = new DataSourceField();
        dsField.setName("id");
        dsField.setType(FieldType.INTEGER);
        ods.setFields(dsField);
        ods.setRecordXPath("/List/entity");
        ods.setDataURL("ds/test_data/ods.xml");
        
        SelectItem item = new SelectItem("status");
        item.setOptionDataSource(ods);
        item.setValueField("id");
        item.setDisplayField("id");
        item.setMultiple(true);
        item.setOperator(OperatorId.IN_SET);
        
        form.setFields(item);

        VLayout layout = new VLayout();
        layout.addMember(form);
        
        IButton criteriaButton = new IButton("dump criteria");
        criteriaButton.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                System.out.println(form.getValuesAsCriteria().getValues());
            }

        });
        layout.addMember(criteriaButton);
        
        return layout;
    }
    
    @Override
    public void onModuleLoad() {
        getViewPanel().draw();
        
    }
}

ods.xml:

<?xml version="1.0" encoding="UTF-8"?>
<List>
    <entity>
        <id>0</id>
    </entity>
    <entity>
        <id>1</id>
    </entity>
    <entity>
        <id>2</id>
    </entity>
</List>

By choosing in combobox 1 and 2 output is:

{operator=and, _constructor=AdvancedCriteria, criteria=[{fieldName=status, operator=inSet, value=[1, 2]}]}

correct!

By choosing in combobox 0 and 1 output is:

{}

The same story with OperatorId.OR.

How can I force SmartGWT to handle zeros properly?

Regards,
Alexey

Thanks for the testcase - this has been fixed and will appear in nightly builds from today

yes, it’s fine now with 2.5.2011-05-05-EVAL. Thanks a lot!