@@ -0,0 +1,2245 @@
+package com.vaadin.tests.components.table;%0D%0A%0D%0Aimport com.vaadin.data.util.IndexedContainer;%0D%0Aimport com.vaadin.tests.components.TestBase;%0D%0Aimport com.vaadin.ui.Button;%0D%0Aimport com.vaadin.ui.Table;%0D%0A%0D%0A@SuppressWarnings(%22serial%22)%0D%0Apublic class ModifyContainerProperty extends TestBase %7B%0D%0A%0D%0A    private Table table = new Table();%0D%0A    private IndexedContainer ic = new IndexedContainer();%0D%0A%0D%0A    @Override%0D%0A    protected void setup() %7B%0D%0A        addComponent(table);%0D%0A%0D%0A        ic.addContainerProperty(%22one%22, String.class, %22one%22);%0D%0A        ic.addContainerProperty(%22two%22, String.class, %22two%22);%0D%0A%0D%0A        ic.addItem(%22foo%22);%0D%0A%0D%0A        ic.getContainerProperty(%22foo%22, %22one%22).setValue(%22bar%22);%0D%0A        ic.getContainerProperty(%22foo%22, %22two%22).setValue(%22baz%22);%0D%0A%0D%0A        table.setContainerDataSource(ic);%0D%0A        addComponent(new Button(%22Remove container property%22,%0D%0A                new Button.ClickListener() %7B%0D%0A                    public void buttonClick(com.vaadin.ui.Button.ClickEvent arg0) %7B%0D%0A                        ic.removeContainerProperty(%22one%22);%0D%0A                    %7D%0D%0A                %7D));%0D%0A        addComponent(new Button(%22Add container property%22,%0D%0A                new Button.ClickListener() %7B%0D%0A                    public void buttonClick(com.vaadin.ui.Button.ClickEvent arg0) %7B%0D%0A                        ic.addContainerProperty(%22three%22, String.class, %22three%22);%0D%0A                        Object%5B%5D current = table.getVisibleColumns();%0D%0A                        Object%5B%5D vis = new Object%5Bcurrent.length + 1%5D;%0D%0A                        for (int i = 0; i %3C current.length; i++) %7B%0D%0A                            vis%5Bi%5D = current%5Bi%5D;%0D%0A                        %7D%0D%0A                        vis%5Bcurrent.length%5D = %22three%22;%0D%0A                        table.setVisibleColumns(vis);%0D%0A                    %7D%0D%0A                %7D));%0D%0A    %7D%0D%0A%0D%0A    @Override%0D%0A    protected String getDescription() %7B%0D%0A        return %22Clicking on %5C%22Add container property%5C%22 adds a property to the container and sets it visible. The table should then show a %5C%22three%5C%22 column in addition to the others. Clicking on %5C%22Remove container property%5C%22 should remove column %5C%22two%5C%22 from the table.%22;%0D%0A    %7D%0D%0A%0D%0A    @Override%0D%0A    protected Integer getTicketNumber() %7B%0D%0A        return 3165;%0D%0A    %7D%0D%0A%7D%0D%0A

Test case for #3165