package org.zkoss.zktest.bind.issue; import java.util.ArrayList; import java.util.List; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.NotifyChange; public class B01347CheckboxCrash { List<Product> productList = new ArrayList<Product>(); private int count = 0; Product selected; @Init public void init() { for (int i = 0; i < 3; i++) { productList.add(mock()); } } public Product getSelected() { return selected; } public void setSelected(Product selected) { this.selected = selected; } public List<Product> getList() { return productList; } @Command @NotifyChange("*") public void delete() { productList.remove(0); } public Product mock() { Product result = new Product(); result.setName("name " + count); count++; return result; } public static class Product { private String name; private boolean flag; public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } } }