Components in tables are not created when revealed by a ValueChangeListener

Hi and pre-thanks for any assistance you can provide with this issue.

I would like a collapsed column to become visible upon row click. This does not work if the column contains components which are not previously displayed by the table.
The following example code demonstrates the issue and provides a button to click which demonstrates the problem only occurs during a ValueChangeListener.

import com.vaadin.data.Property.ValueChangeEvent;
import com.vaadin.data.Property.ValueChangeListener;
import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.Button;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Label;
import com.vaadin.ui.Table;
import com.vaadin.ui.UI;
import com.vaadin.ui.VerticalLayout;

public class MyUI extends UI {

    private static final String LABEL_COLUMN = "label";
	private static final String STRING_COLUMN = "str";

	@Override protected void init(VaadinRequest request) {
        final VerticalLayout layout = new VerticalLayout();
        setContent(layout);

		final Table table = new Table();
		table.setSelectable(true);
		table.setImmediate(true);
		table.setColumnCollapsingAllowed(true);
		
		table.addContainerProperty(STRING_COLUMN, String.class, null);
		table.addContainerProperty(LABEL_COLUMN, Label.class, null);
		table.setColumnCollapsed(LABEL_COLUMN, true);
		
		table.addValueChangeListener(new ValueChangeListener() {
			@Override public void valueChange(ValueChangeEvent event) {
				showLabel(table); //!Doesn't work.
			}
		});
		
		table.addItem(new Object[]{ "one", 	new Label("one") }, 	1);
		table.addItem(new Object[]{ "two", 	new Label("two") }, 	2);
		table.addItem(new Object[]{ "three",new Label("three") }, 	3);
		table.addItem(new Object[]{ "four",	new Label("four") }, 	4);
		table.addItem(new Object[]{ "five",	new Label("five") }, 	5);
		
		layout.addComponent(table);
		layout.addComponent(new Button("Show Label", new Button.ClickListener() {
			@Override public void buttonClick(ClickEvent event) {
				showLabel(table); //!Works
			}
		}));
		layout.addComponent(new Button("Reset", new Button.ClickListener() {
			@Override public void buttonClick(ClickEvent event) {
				table.setColumnCollapsed(STRING_COLUMN,	false);
				table.setColumnCollapsed(LABEL_COLUMN,	true);
			}
		}));
    }

	private void showLabel(final Table table) {
		table.setColumnCollapsed(STRING_COLUMN,	true);
		table.setColumnCollapsed(LABEL_COLUMN,	false);
	}
}

The following debug output seems relevant:

16:54:55:448  * Updating connector hierarchy
16:54:55:449 Hierarchy claims that 26 is a child for 22 (com.vaadin.client.ui.table.TableConnector) but no connector with id 26 has been registered
16:54:55:449 Hierarchy claims that 27 is a child for 22 (com.vaadin.client.ui.table.TableConnector) but no connector with id 27 has been registered
16:54:55:450 Hierarchy claims that 25 is a child for 22 (com.vaadin.client.ui.table.TableConnector) but no connector with id 25 has been registered
16:54:55:450 Hierarchy claims that 24 is a child for 22 (com.vaadin.client.ui.table.TableConnector) but no connector with id 24 has been registered
16:54:55:451 Hierarchy claims that 23 is a child for 22 (com.vaadin.client.ui.table.TableConnector) but no connector with id 23 has been registered
16:54:55:451  * Running @DelegateToWidget
16:54:55:452  * Sending state change events
16:54:55:452  * Passing UIDL to Vaadin 6 style connectors
16:54:55:457 Widget is still attached to the DOM after the connector (LabelConnector (23)) has been unregistered. Widget was removed.
16:54:55:458 Widget is still attached to the DOM after the connector (LabelConnector (24)) has been unregistered. Widget was removed.
16:54:55:459 Widget is still attached to the DOM after the connector (LabelConnector (25)) has been unregistered. Widget was removed.
16:54:55:459 Widget is still attached to the DOM after the connector (LabelConnector (26)) has been unregistered. Widget was removed.
16:54:55:460 Widget is still attached to the DOM after the connector (LabelConnector (27)) has been unregistered. Widget was removed.
16:54:55:460 * Unregistered 5 connectors

I think I’ve fairly exhausted any potential work arounds, including using generated columns instead, but to no avail. I’m hopeful someone with more experience of Vaadin will be able to help, and I have also created a bug report for this issue at
http://dev.vaadin.com/ticket/11221
.
Many thanks,
Dan.