Variable Row height Table causes WARNING [com.vaadin.terminal.gwt.server.Ab

Hi
I have a table which consists of various column generators. When user clicks on a vertical layout on the first column i need to change the background color of the layout and after some delay i need to take the user to a new view. For achieving the background color change i am making use of a progress indicator. This part works fine. But after taking the user to the new view if i return back to the table view Scroll down the Table and click on first column of any other row i am getting the warning.
And Yes I am using another thread to update the background color change. I am unable to resolve this Can any one help with this


WARNING [com.vaadin.terminal.gwt.server.AbstractCommunicationManager]
 Warning: Ignoring variable change for non-existent component, VAR_PID=PID793

Here is my column generator code


package com.logica.medi.hcmu.webapp.components.table.columngenerators;

import java.util.HashMap;
import java.util.Map;

import com.logica.medi.hcmu.ejb.model.DailyTask;
import com.logica.medi.hcmu.webapp.base.listener.LayoutClickEventProvider;
import com.logica.medi.hcmu.webapp.components.DailyTaskVisitInfoComponent;
import com.logica.medi.hcmu.webapp.components.TableCellChangeNavigationIndicator;
import com.logica.medi.hcmu.webapp.components.ThreatInfoComponent;
import com.logica.medi.hcmu.webapp.components.table.listeners.TableColumnLayoutListener;
import com.logica.medi.hcmu.webapp.util.ClientViewNavigationHelper;
import com.vaadin.data.util.BeanItem;
import com.vaadin.event.LayoutEvents;
import com.vaadin.event.LayoutEvents.LayoutClickEvent;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Component;
import com.vaadin.ui.Table;
import com.vaadin.ui.Table.ColumnGenerator;
import com.vaadin.ui.VerticalLayout;

public class TaskInfoColumnGenerator implements ColumnGenerator {

	private static final long serialVersionUID = -3237661713107613467L;
	/**
	 * Event provider for Layout click.
	 */
	private final LayoutClickEventProvider<TableColumnLayoutListener, DailyTask> layoutEventProvider =
			new LayoutClickEventProvider<TableColumnLayoutListener, DailyTask>();

	private final Map<DailyTask, ThreatInfoComponent> threatInfoCompMap =
			new HashMap<DailyTask, ThreatInfoComponent>();
	private TableCellChangeNavigationIndicator indicator;
	
	private int longestPartOfDayLength;

	@SuppressWarnings("rawtypes")
	public Component generateCell(final Table source, final Object itemId,
			final Object columnId) {
		source.setSelectable(Boolean.TRUE);
		final VerticalLayout verticalLayout = new VerticalLayout();
		verticalLayout.setStyleName("taskInfo");
		verticalLayout.setMargin(true, false, true, false);
		verticalLayout.setWidth("100.0%");
		final DailyTask task =
				(DailyTask) ((BeanItem) source.getItem(itemId)).getBean();
		final ThreatInfoComponent riskInfoComp = new ThreatInfoComponent(task);
		threatInfoCompMap.put(task, riskInfoComp);

		final DailyTaskVisitInfoComponent dailyTaskVisitInfoComponent =
				new DailyTaskVisitInfoComponent(task, layoutEventProvider, longestPartOfDayLength);
		verticalLayout.addComponent(dailyTaskVisitInfoComponent);
		verticalLayout.setComponentAlignment(dailyTaskVisitInfoComponent,
				Alignment.TOP_LEFT);
		verticalLayout.addListener(new LayoutEvents.LayoutClickListener() {

			private static final long serialVersionUID = 6182080891554598675L;

			@Override
			public void layoutClick(final LayoutClickEvent event) {
				// The TaskInfo Column is set with Blue background on Clicking
				// of the cell in the DailyTaskView.
				source.select(null);
				verticalLayout.addStyleName("dailyTasksCellSelect");
				setNavigationIndicator(task, source, verticalLayout);
				final Thread t = new Thread() {
					@Override
					public void run() {
						try {
							Thread.sleep(1);
							setNavigationTimeOutDone();
							//The below check is done for the column selection of risk data
							if(! task.getThreatInfos().isEmpty() ) {
								Thread.sleep(1);
								verticalLayout.removeStyleName("dailyTasksCellSelect");
								source.select(task);
							}
						}
						catch (InterruptedException e) {
							e.printStackTrace();
						}
					}
				};
				t.start();
				resetNavigationTimeoutDone();
			}
		});
		return verticalLayout;
	}
	
	public void setNavigationIndicator(final DailyTask task,
			final Table source, final VerticalLayout verticalLayout) {
		if (indicator != null) {
			verticalLayout.removeComponent(indicator);
		}
		indicator =
				new TableCellChangeNavigationIndicator(task, source,
						new ClientViewNavigationHelper(), null);
		verticalLayout.addComponent(indicator);
	}

	public void setNavigationTimeOutDone() {
		if (indicator != null) {
			indicator.setNavigate(true);
		}
	}
	public void resetNavigationTimeoutDone() {
		if (indicator != null) {
			indicator.setNavigate(false);
		}
	}
	public void addListener(final TableColumnLayoutListener listener) {
		layoutEventProvider.addListener(listener);
	}

	public void removeAllListeners() {
		layoutEventProvider.removeAllListeners();
	}

	

	public void setLongestPartOfDayLength(final int longestLength) {
		longestPartOfDayLength = longestLength;
	}
}

Here is my progress indicator code


package com.logica.medi.hcmu.webapp.components;

import com.logica.medi.hcmu.ejb.model.DailyTask;
import com.logica.medi.hcmu.webapp.base.NavigationHelper;
import com.logica.medi.hcmu.webapp.base.NavigationParameters;
import com.logica.medi.hcmu.webapp.components.table.DailyTasksTable;
import com.vaadin.ui.ProgressIndicator;
import com.vaadin.ui.Table;

public class TableCellChangeNavigationIndicator extends ProgressIndicator {

	private static final long serialVersionUID = 8386468906843563224L;

	private boolean navigate;
	private final DailyTask task;
	private DailyTasksTable dailyTasksTable;
	private NavigationHelper navigationHelper;

	private NavigationParameters params;

	public TableCellChangeNavigationIndicator(final DailyTask task,
			final Table source, final NavigationHelper navigationHelper,
			final NavigationParameters params) {
		this.task = task;
		this.dailyTasksTable = (DailyTasksTable) source;
		this.navigationHelper = navigationHelper;
		this.params = params;
		setPollingInterval(1);
		setIndeterminate(false);
		setImmediate(true);
		setHeight("0px");
		setWidth("0px");
	}

	public void setNavigate(final boolean navigate) {
		this.navigate = navigate;
		super.setValue(navigate ? 1 : 0);
	}

	@Override
	public Object getValue() {
		if (navigate) {
			navigationHelper.navigate(dailyTasksTable, task, params);
			setNavigate(false);
			return super.getValue();
		}
		return super.getValue();
	}
}

I am not setting any Page length for the table. its the default value.

Hi
Can any body here help me please. I am unable to debug this issue as it occurs even before the control comes to my classes.

Thanks in advance
Ajay

Can somebody any body help me pleaseā€¦I am deadlocked.
Regards
Ajay