Grafico Prime faces JSF grafico some após novo cadastro

Olá pessoal bom dia !!!
Estou criando uma aplicação JSF PrimeFaces e Bootstrap e estou utilizando Graficos do Prime faces Chart View !
Meu MVC funciona da seguinte maneira tenho um na visão uma pagina que o usuario informa dentre quais datas ele deseja gerar o grafico exemplo 01-08-2017 a 10-08-2017 apos isso ele clica em um botão que redireciona para a proxima tela veja no codigo abaixo

<ui:define name=“content”>
<h:form>

			<p:growl id="messages" sticky="true" showDetail="true" life="5000" />
			<div class="panel panel-default">
			 <div class="panel-heading"> <h2 style="text-align: center">Gráfico referente ao valor do litro do leite  </h2><br/></div>
			<div class="panel-body" style="margin: auto">
			  <div class="alert alert-info">
		  		<strong>Informação:</strong> Nesta Sessão informe as datas corespondentes, a DATA INICIAL deve sempre ser a menor!
			</div>
		    
		       
			<h:panelGrid columns="2">
			
			<p:outputLabel for="popup" value="Data Inicial" />
	        <p:calendar id="popup"  locale="pt"    pattern="dd/MM/yyyy"  value="#{chartView.dataInicial}" />
	        
			<p:outputLabel for="pou1" value="Data Final" />
	        <p:calendar id="pou1"  locale="pt"    pattern="dd/MM/yyyy"  value="#{chartView.dataFinal}" />
    		</h:panelGrid>
    		
			<p:commandButton value="Buscar"  update="@form"  actionListener="#{chartView.pegarData()}" ajax="false" />
			</div>
		
			</div>
       
	         
	</h:form>			
        </ui:define>

Após isso tenho um Managed bean que faz todo o processo esse MB é do tipo sessionScoped com session funciona perfeitamente porem toda a vez que efetuo um novo cadastro ele nao atualiza no grafico o grafico exibe as informações antigas, até ai sei que é devido ao escopo do bean, mas utilizando o View tem outro quando coloco bean nao exibe nada ele carrega a pagina vazia mas ai printo no console ele por incrivel que pareça ele exibe no console as informações segueo bean meu

@ManagedBean
@SessionScoped
public class ChartView implements Serializable {

private LineChartModel dateModel;
private DAOGenerico dao = new DAOGenerico();
private List<Leite> lista = new ArrayList<>();
private Date dataInicial = new Date();
private Date dataFinal = new Date();
public String novaData, novaData2;

public ChartView() {
	createDateModel();

}

@PostConstruct
public void init() {
    createDateModel();
   
   
}

public LineChartModel getDateModel() {
    return dateModel;
}
 public void pegarData() throws IOException{
	 SimpleDateFormat formatador2 = new SimpleDateFormat("dd/MM/yyyy");
	 FacesContext faces = FacesContext.getCurrentInstance();

	 System.out.println(getDataInicial());
	 
	 SimpleDateFormat formatador = new SimpleDateFormat("yyyy/MM/dd");
	 novaData = formatador.format(dataInicial);
	 novaData2 = formatador.format(dataFinal);
	
	 System.out.println(novaData+" nova data 2 " +novaData2);
 lista = dao.lista(Leite.class);   
	lista = dao.listaCondicao(Leite.class, "dataDoValor BETWEEN ' " + novaData + " ' AND ' " + novaData2 + " ' ");
  	System.out.println("no Preencher ELSE");
    for (Leite leite : lista) {
		System.out.println(leite.getDataDoValor());
	}
    if(lista.size()>=1){
 	   createDateModel();
 	  
 	   novaData = formatador2.format(dataInicial);
       novaData2 = formatador2.format(dataFinal);
 	   FacesContext.getCurrentInstance().getExternalContext().redirect("leiteGrafico.jsf");
     	}else{
     		
 	      	 novaData = formatador2.format(dataInicial);
 	      	 novaData2 = formatador2.format(dataFinal);
 	     	 faces.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"","Nenhuma valor cadastrado entre a data "+novaData+" e a data "+novaData2));		
     	}
    }

private void createDateModel() {
	
	FacesContext faces = FacesContext.getCurrentInstance();
	 if(lista !=null){


	    	
         dateModel = new LineChartModel();
         LineChartSeries series1 = new LineChartSeries();
         series1.setLabel("Series 1");

         for (Leite leite : lista) {
         	
         Object valor =	leite.getDataDoValor().toString();
 			series1.set(valor, leite.getValorLitro());
 			dateModel.addSeries(series1);
 			
 			System.out.println(leite.getValorLitro());
 		}
  

      //   SimpleDateFormat formatador = new SimpleDateFormat("yyyy/MM/dd");
        
      	 
          
         //dateModel.setTitle("Varia��o do Valor do litro do Leite");
         
         dateModel.getAxis(AxisType.Y).setLabel("Valor em R$");
         DateAxis axis = new DateAxis("Datas que ouve mudança no valor do Litro do Leite");
         axis.setTickAngle(0);
         axis.setMax(novaData2);
         axis.setTickCount(10);
         
         dateModel.getAxis(AxisType.Y).setTickCount(20);
         dateModel.getAxis(AxisType.Y).setMin(0);
         axis.setTickFormat("%#d, %b %y");
         
          
         dateModel.getAxes().put(AxisType.X, axis);
     	System.out.println("no GRAFICO");
 	
    		
    }else{
    	
   
    }
 	
}

Agora a visão do grafico

         <p:growl id="messages" sticky="true" showDetail="true" life="5000" />
           <div class="panel panel-default">
		  <div class="panel-heading"> 
		  <h4 style="text-align: center" >
		  Curva de variação do preço do leite entre <h:outputLabel value="#{chartView.novaData}" /> há <h:outputLabel value="#{chartView.novaData2}" />
		  </h4>
		   <br/></div>
		  <div class="panel-body">
          <h:form>
	            <p:chart type="line" model="#{chartView.dateModel}" style="height:400px;"   responsive="true"  />
		</h:form>
		</div>
		</div>

Agora estou com o problema toda a vez que efetuo um novo cadastro de leite e vou tentar exibir as estatisticas no grafico nao exibe ele fica em braco
esse video mostra meu problema

agora não sei oque estou fazendo de errado podem me ajudar?