JSF 2.0 + Primefaces ( DataTable + Filtering + Checkbox)

Olá pessoal, sempre que tenho problemas eu procuro e acho aki…mais esse não encontrei nada ainda se alguem tiver alguma dica…

Estou tentando implementar em exemplo do PrimeFaces que esta no site utilizando ( DataTable + Filtering + Checkbox ), quando implemento o DataTable + Filtering utilizando um List…sem problema ele funciona, DataTable + Checkbox ok…tudo um blz…porem quando DataTable + Filtering + Checkbox a tabela carrega, consigo selecionar todos…até ai blz…o problema esta no filtro quando seleciono o primeiro Ok ele faz o filtro perfeito, selecionando o segundo ele não faz nada quando seleciono o terceiro e traz o resultado do segundo…valeu

segue o Código;

xhtml

  <p:dataTable id="multiCars" var="car" value="#{tableBean.mediumCarsModel}" paginator="true" rows="10"  
                 selection="#{tableBean.selectedCars}"
                 filteredValue="#{tableBean.filteredCars}"
                 filterEvent="enter"
                 first="1"
                 >  
  
        <f:facet name="header">  
            Checkbox Based Selection  
        </f:facet>  
  
        <p:column selectionMode="multiple" style="width:18px" />  
  
        <p:column headerText="Model">  
            #{car.model}  
        </p:column>  
  
        <p:column headerText="Year">  
            #{car.year}  
        </p:column>  
  
            <p:column id="manufacturerColumn" filterBy="#{car.manufacturer}"   
                    headerText="Manufacturer"   
                    filterOptions="#{tableBean.manufacturerOptions}"  
                    filterMatchMode="exact"
                    
                     >
                      
                <h:outputText value="#{car.manufacturer}"  />  
            </p:column>   
  
        <p:column headerText="Color">  
            #{car.color}  
        </p:column>  
  
        <f:facet name="footer">  
            <p:commandButton id="multiViewButton" value="View" icon="ui-icon-search"  
                             update=":form:displayMulti" oncomplete="multiCarDialog.show()"/>  
        </f:facet>  
    </p:dataTable>  
  
    <p:dialog id="multiDialog" header="Car Detail" widgetVar="multiCarDialog"  
              height="300" showEffect="fade" hideEffect="explode"   >  
  
        <p:dataList id="displayMulti"  
                value="#{tableBean.selectedCars}" var="selectedCar">  
            Model: #{selectedCar.model}, Year: #{selectedCar.year}  
        </p:dataList>  
  
    </p:dialog> 

TableBean

@ManagedBean
@SessionScoped
public class TableBean implements Serializable {  
  
    /**
	 * 
	 */
	private static final long serialVersionUID = 798972579525628219L;

    private final static String[] colors;  
    
    private final static String[] manufacturers;  
  
    private SelectItem[] manufacturerOptions;  
  
    private List<Car> filteredCars;  
  
    private List<Car> carsSmall;  	
	
    
    private List<Car> cars;  
    
    private Car selectedCar;  
  
    private Car[] selectedCars;  
  
    private CarDataModel mediumCarsModel;

	private int y;      
    
    
	static {  
        colors = new String[10];  
        colors[0] = "Black";  
        colors[1] = "White";  
        colors[2] = "Green";  
        colors[3] = "Red";  
        colors[4] = "Blue";  
        colors[5] = "Orange";  
        colors[6] = "Silver";  
        colors[7] = "Yellow";  
        colors[8] = "Brown";  
        colors[9] = "Maroon";  
  
        manufacturers = new String[10];  
        manufacturers[0] = "Mercedes";  
        manufacturers[1] = "BMW";  
        manufacturers[2] = "Volvo";  
        manufacturers[3] = "Audi";  
        manufacturers[4] = "Renault";  
        manufacturers[5] = "Opel";  
        manufacturers[6] = "Volkswagen";  
        manufacturers[7] = "Chrysler";  
        manufacturers[8] = "Ferrari";  
        manufacturers[9] = "Ford";  
    }  
  

  
    public TableBean() {  
        carsSmall = new ArrayList<Car>();  
  
        populateRandomCars(carsSmall, 9);  
        manufacturerOptions = createFilterOptions(manufacturers);
        mediumCarsModel = new CarDataModel(carsSmall);  
    }  
  
    private void populateRandomCars(List<Car> list, int size) {  
        for(int i = 0 ; i < size ; i++)  
            list.add(new Car(getRandomModel(), getRandomYear(), getRandomManufacturer(), getRandomColor()));  
    }  
  
    public List<Car> getFilteredCars() {  
        return filteredCars;  
    }  
  
    public void setFilteredCars(List<Car> filteredCars) {  
        this.filteredCars = filteredCars;  
    }  
  
    public List<Car> getCarsSmall() {  
        return carsSmall;  
    }  
  
    private int getRandomYear() {  
        return (int) (Math.random() * 50 + 1960);  
    }  
  
    private String getRandomColor() {  
        return colors[(int) (Math.random() * 10)];  
    }  
  
    private String getRandomManufacturer() {  
        return manufacturers[(int) (Math.random() * 10)];  
    }  
  
    private String getRandomModel() {  
        return UUID.randomUUID().toString().substring(0, 8);  
    }  
  
    private SelectItem[] createFilterOptions(String[] data)  {  
        SelectItem[] options = new SelectItem[data.length + 1];  
  
        options[0] = new SelectItem("", "Select");  
        for(int i = 0; i < data.length; i++) {  
            options[i + 1] = new SelectItem(data[i], data[i]);  
        }  
  
        return options;  
    }  
  
    public List<Car> getCars() {
		return cars;
	}

	public void setCars(List<Car> cars) {
		this.cars = cars;
	}

	public Car getSelectedCar() {
		return selectedCar;
	}

	public void setSelectedCar(Car selectedCar) {
		this.selectedCar = selectedCar;
	}

	public Car[] getSelectedCars() {
		return selectedCars;
	}

	public void setSelectedCars(Car[] selectedCars) {
		this.selectedCars = selectedCars;
	}

	public CarDataModel getMediumCarsModel() {
		return mediumCarsModel;
	}

	public void setMediumCarsModel(CarDataModel mediumCarsModel) {
		
		int x = mediumCarsModel.getRowIndex();
		y = mediumCarsModel.getRowIndex()+1;
		
		this.mediumCarsModel = mediumCarsModel;
	}


	public  String[] getManufacturers() {
		return manufacturers;
	}

	public void setCarsSmall(List<Car> carsSmall) {
		this.carsSmall = carsSmall;
	}

	public SelectItem[] getManufacturerOptions() {  
        return manufacturerOptions;  
    }  
}

CarDataModel

	public CarDataModel() {  
    }  
  
    public CarDataModel(List<Car> data) {  
        super(data);  
    }  
      
    @Override  
    public Car getRowData(String rowKey) {  
        //In a real app, a more efficient way like a query by rowKey should be implemented to deal with huge data  
          
        List<Car> cars = (List<Car>) getWrappedData();  
          
        for(Car car : cars) {  
            if(car.getModel().equals(rowKey))  
                return car;  
        }  
          
        return null;  
    }  
  
    @Override  
    public String getRowKey(Car car) {  
        return car.getModel();  
    }  

faz um teste
mude para @ViewScoped

@ManagedBean @ViewScoped public class TableBean implements Serializable

Já estava assim antes…Tb não rolou…

Também estou com o mesmo problema com esse exemplo…

to com o mesmo problema… alguem?

tambem estou com o mesmo problema, alguem conseguiu alguma solução??

alguem??? to com o mesmo problema??? alguma solução???