Chart Updated Every n Seconds - Line drawn wrong

Hi,
after see this Vaadin Charts Demo
SplineUpdatingEachSecond
I implemented my custom chart with DataSeriesItem taken from my DB.
See code below. It seems to work fine but the line drawn after add a new DataSeriesItem is incorrect as shown in the attached screenshoot. It seems that a new series is drawn…help me please!!!


public class SingleSpeedSiteChart extends Chart {

	private static final long serialVersionUID = 7050234660637973663L;
	
	private MisurazioniService service = new MisurazioniService();
	
	Date intervalDate = DateUtilities.dateAdd(new Date(), -2);
	
	public SingleSpeedSiteChart(final MisurazioneSito sito) {
		
	super(ChartType.SPLINE);   

        getConfiguration().setTitle("");
        getConfiguration().getChart().setType(ChartType.SPLINE);
        getConfiguration().getChart().setZoomType(ZoomType.X);
        
        Axis xAxis = getConfiguration().getxAxis();
        xAxis.setType(AxisType.DATETIME);
        
        YAxis yAxis = getConfiguration().getyAxis();
        yAxis.setTitle("");
        Labels labels = new Labels();
        labels.setFormatter("this.value +'sec'");
        yAxis.setLabels(labels);
        yAxis.setMin(0);

        Tooltip tooltip = new Tooltip();
        tooltip.setShared(true);
        tooltip.setEnabled(true);
        tooltip.setCrosshairs(true);
        tooltip.setxDateFormat("%d.%m.%Y %H:%M");
        getConfiguration().setTooltip(tooltip);
        getConfiguration().getLegend().setEnabled(false);

    	final DataSeries series = new DataSeries();
        series.setName(sito.getNote());
        JPAContainer<Misuration> dati = /* call get method that search data into db*/
        for (Iterator iterator = dati.getItemIds().iterator(); iterator.hasNext();) {
        	Date date = (Date)iterator.next();
			Misurationmis = (Misuration) dati.getItem(new MisurationPK(sito.getId(), date)).getEntity();
			
			DataSeriesItem item;
			item = new DataSeriesItem(mis.getDate(), mis.getSpeedInSecond());
			series.add(item);
	}
        Thread randomDataGenerator = new Thread() {
            @Override
            public void run() {
                while (true) {
                    try {
                        sleep(30000);
                        if (isConnectorEnabled()) {
                            getSession().lock();
                            try {
                            	
                            	Date data = DateUtilities.dateAddSec(new Date(), -30);
                            	if(series.size() >  0){
                            		DataSeriesItem itemlast = series.get(series.size()-1);
                                	long timestamp = (Long) itemlast.getX();
                                	data = new Date(timestamp);
                            	}
                            	
                            	JPAContainer<Misuration> dati = /* call get method that search new data into db*/
                            	
                            	for (Iterator iterator = dati.getItemIds().iterator(); iterator.hasNext();) {
                            		Date date = (Date)iterator.next();
                    				Misuration mis = (Misuration) dati.getItem(new MisurationPK(sito.getId(), date)).getEntity();
                    				DataSeriesItem item;
                    				item = new DataSeriesItem(mis.getDate(), mis.getSpeedInSecond());
                    				item.setMarker(new Marker(false));
                    				series.add(item, true, true);
                    			}
                               
                            } finally {
                                getSession().unlock();
                            }
                        } else {
                            break;
                        }
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }
        };
       randomDataGenerator.start();
       
       getConfiguration().addSeries(series);
      
       drawChart(getConfiguration());
	}

}

13185.gif
13186.gif