Error Rendering View[/pages/eventoCalendario.xhtml] java.lang.NullPointerException

Prezados estou com dificuldade de encontrar o motivo do erro: GRAVE: Error Rendering View. Algem poderia me ajudar? Obrigado!

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.org/ui">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Teste JSF</title>
</h:head>
<h:body>
	<h:form>
			<p:schedule value="#{eventoCalendarioBean.eventoModel}" widgetVar="meuCalendario"  id="schEvento">
				<p:ajax event="eventSelect" listener="#{eventoCalendarioBean.quandoSelecionado}" update="eventoDetalhe"
				oncomplete="PF('caixaDialog').show();"/>
			</p:schedule>
			
			<p:dialog widgetVar="caixaDialog" header="Evento" resizable="false" modal="true" showEffect="clip">
				<p:outputPanel id="eventoDetalhe">
				
				<h:panelGrid>
					<p:outputLabel value="Título"/>
					<p:inputText value="#{eventoCalendarioBean.eventoCalendario.titulo}"/>
					
					<p:outputLabel value="Início"/>
					<p:calendar value="#{eventoCalendarioBean.eventoCalendario.inicio}" pattern="dd/MM/yyyy"/>
					
					<p:outputLabel value="Fim"/>
					<p:calendar value="#{eventoCalendarioBean.eventoCalendario.fim}" pattern="dd/MM/yyyy"/>
					
					<p:outputLabel value="Status"/>
					<p:inputText value="#{eventoCalendarioBean.eventoCalendario.status}"/>
					
					<p:outputLabel value="Descrição"/>
					<p:inputText value="#{eventoCalendarioBean.eventoCalendario.descricao}"/>
				</h:panelGrid>
				
				<p:separator/>
				
				<p:commandButton value="Salvar"/>
				
				</p:outputPanel>
			</p:dialog>
		</h:form>
</h:body>
</html>

package br.pro.sispro.migreja.bean;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.SelectEvent;
import org.primefaces.model.DefaultScheduleEvent;
import org.primefaces.model.DefaultScheduleModel;
import org.primefaces.model.ScheduleEvent;
import org.primefaces.model.ScheduleModel;

import br.pro.sispro.migreja.domain.EventoCalendario;
import br.sispro.migreja.dao.EventoCalendarioDAO;

@ManagedBean
@ViewScoped
public class EventoCalendarioBean implements Serializable {

	private static final long serialVersionUID = 25241208988300281L;
	
	private EventoCalendario eventoCalendario;
	private ScheduleModel eventoModel;
	private List<EventoCalendario> listaEvento;
	private EventoCalendarioDAO eDAO;
	
	public EventoCalendario getEventoCalendario() {
		return eventoCalendario;
	}
	public void setEventoCalendario(EventoCalendario eventoCalendario) {
		this.eventoCalendario = eventoCalendario;
	}
	public ScheduleModel getEventoModel() {
		return eventoModel;
	}
	public void setEventoModel(ScheduleModel eventoModel) {
		this.eventoModel = eventoModel;
	}
	public List<EventoCalendario> getListaEvento() {
		return listaEvento;
	}
	public void setListaEvento(List<EventoCalendario> listaEvento) {
		this.listaEvento = listaEvento;
	}
	public EventoCalendarioDAO geteDAO() {
		return eDAO;
	}
	public void seteDAO(EventoCalendarioDAO eDAO) {
		this.eDAO = eDAO;
	}
	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	@PostConstruct
	public void inicializar() throws Exception{
		
		eDAO = new EventoCalendarioDAO();
		eventoCalendario = new EventoCalendario();
		eventoModel = new DefaultScheduleModel();
		
		try {
			
			listaEvento = eDAO.todosEventos();
			
		} catch (SQLException ex) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro", "Erro no sql"));
			ex.printStackTrace();
		}
		
		for(EventoCalendario ev : listaEvento){
			
			DefaultScheduleEvent evt = new DefaultScheduleEvent();
			
			evt.setEndDate(ev.getFim());
			evt.setStartDate(ev.getInicio());
			evt.setTitle(ev.getTitulo());
			evt.setData(ev.getCodigo());
			evt.setDescription(ev.getDescricao());
			evt.setAllDay(true);
			evt.setEditable(true);
			
			eventoModel.addEvent(evt);			
		}
	}
	
	public void quandoSelecionado(SelectEvent selectEvent){
		
		ScheduleEvent event = (ScheduleEvent) selectEvent.getObject();
		
		for(EventoCalendario ev : listaEvento){
			if(ev.getCodigo() == (Long) event.getData()){
				eventoCalendario = ev;
				break;
			}
		}
	}
}

Erro:

at org.primefaces.component.schedule.ScheduleRenderer.encodeScript(ScheduleRenderer.java:131)
at org.primefaces.component.schedule.ScheduleRenderer.encodeEnd(ScheduleRenderer.java:64)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

ago 21, 2016 4:32:45 AM com.sun.faces.context.ExceptionHandlerImpl log
FATAL: JSF1073: java.lang.NullPointerException obtido durante o processamento de RENDER_RESPONSE 6: UIComponent-ClientId=, Message=null
ago 21, 2016 4:32:45 AM com.sun.faces.context.ExceptionHandlerImpl log
FATAL: No associated message
java.lang.NullPointerException
at org.primefaces.component.schedule.ScheduleRenderer.encodeScript(ScheduleRenderer.java:131)
at org.primefaces.component.schedule.ScheduleRenderer.encodeEnd(ScheduleRenderer.java:64)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

Ola @JosueSantos,

qual é a versão do Primefaces esta utilizando?

eu nunca usei este coponente mas analisando seu log é uma exception(NullPointer) causada pelo <p:schedule/> no site eles inicializam o private ScheduleEvent no escopo da classe, poderia testar?

private ScheduleEvent event = new DefaultScheduleEvent();

Também percebi no seu log um UI-component NULL la eels validan o event.getId ex:

public void addEvent(ActionEvent actionEvent) {        
    if(event.getId() == null)  {          
        eventModel.addEvent(event);
    } else {           
        eventModel.updateEvent(event);                 
    }
event = new DefaultScheduleEvent();    
}

Ola, Aix,

Estou usando a versão do Primefaces 5.3, mas estava usando a versão 6.0. Troquei para analisar, porem deu erro nas duas versões. Vou testar private ScheduleEvent no escopo da classe Managedbean, para ver se resolve. Será que este erro se dar porque tem algum componente UI declarada errado? Poderia me explicar de onde vem este event.getId(), é a chave primária?

Obrigado!

Então brother, eu vi isso na documentação do Primefaces, em showcases, segue o link:

Schedule

Aix,

Obrigado pela ajuda e atenção! O erro estava acontecendo por duplicidade de (id) entre os componentes do primefaces na página xhtml. Não estava claro, mas com a persistência resolvi.

Dados do @ManegdBean
private static final long serialVersionUID = 25241208988300281L;

private EventoCalendario eventoCalendario;
private ScheduleModel eventoModel;
private List<EventoCalendario> listaEvento;
private EventoCalendarioDAO eventoCalendarioDAO;

public EventoCalendario getEventoCalendario() {
	return eventoCalendario;
}

public void setEventoCalendario(EventoCalendario eventoCalendario) {
	this.eventoCalendario = eventoCalendario;
}

public ScheduleModel getEventoModel() {
	return eventoModel;
}

public void setEventoModel(ScheduleModel eventoModel) {
	this.eventoModel = eventoModel;
}

public List<EventoCalendario> getListaEvento() {
	return listaEvento;
}

public void setListaEvento(List<EventoCalendario> listaEvento) {
	this.listaEvento = listaEvento;
}

public EventoCalendarioDAO getEventoCalendarioDAO() {
	return eventoCalendarioDAO;
}

public void setEventoCalendarioDAO(EventoCalendarioDAO eventoCalendarioDAO) {
	this.eventoCalendarioDAO = eventoCalendarioDAO;
}

public static long getSerialversionuid() {
	return serialVersionUID;
}

@PostConstruct
public void listar() {
	eventoModel = new DefaultScheduleModel();
	eventoCalendarioDAO = new EventoCalendarioDAO();
	eventoCalendario = new EventoCalendario();
	
	listaEvento = eventoCalendarioDAO.listar();
	
	for (EventoCalendario eventoCalendario : listaEvento) {

		DefaultScheduleEvent evt = new DefaultScheduleEvent();

		evt.setEndDate(eventoCalendario.getFim());
		evt.setStartDate(eventoCalendario.getInicio());
		evt.setTitle(eventoCalendario.getTitulo());
		evt.setData(eventoCalendario.getCodigo());
		evt.setDescription(eventoCalendario.getDescricao());
		evt.setAllDay(true);
		evt.setEditable(true);
		
		//cor do evento
		if(eventoCalendario.getStatus() == true ){
			evt.setStyleClass("emp1");
		}else if(eventoCalendario.getStatus() == false){
			evt.setStyleClass("emp2");
		}

		eventoModel.addEvent(evt);

		System.out.println("Tamanho da lista de registro de evento calendario: " + listaEvento.size());
	}
}

/*@PostConstruct
public void inicializar() throws Exception {

	try {
		try {
			listaEvento = eventoCalendarioDAO.listar();
		} catch (Exception erro) {
			Messages.addGlobalError("Ocorreu um erro ao tentar gerar listar do calendario de evento!");
			erro.printStackTrace();
			Messages.addGlobalError(erro.getMessage());
		}
		for (EventoCalendario eventoCalendario : listaEvento) {

			DefaultScheduleEvent evt = new DefaultScheduleEvent();

			evt.setEndDate(eventoCalendario.getFim());
			evt.setStartDate(eventoCalendario.getInicio());
			evt.setTitle(eventoCalendario.getTitulo());
			evt.setData(eventoCalendario.getCodigo());
			evt.setDescription(eventoCalendario.getDescricao());
			evt.setAllDay(true);
			evt.setEditable(true);

			eventoModel.addEvent(evt);

			System.out.println("Resultado da lista: " + listaEvento.size());
		}
	} catch (RuntimeException erro) {
		Messages.addGlobalError("Ocorreu um erro ao tentar iniciar o calendario de evento!");
		erro.printStackTrace();
		Messages.addGlobalError(erro.getMessage());
	}
}*/

public void quandoSelecionado(SelectEvent selectEvent) {
	
		ScheduleEvent event = (ScheduleEvent) selectEvent.getObject();

		for (EventoCalendario ev : listaEvento) {
			if (ev.getCodigo() == (Long) event.getData()) {
				eventoCalendario = ev;
				break;
			}
		}		
}

public void  novo(SelectEvent selectEvent){
	ScheduleEvent event = new DefaultScheduleEvent("", (Date)selectEvent.getObject(), (Date)selectEvent.getObject());
	
	eventoCalendario =new EventoCalendario();
	eventoCalendario.setInicio(new java.sql.Date(event.getStartDate().getTime()));
	eventoCalendario.setFim(new java.sql.Date(event.getEndDate().getTime()));
}

public void salvar(){
	if(eventoCalendario.getCodigo() == null){
		if(eventoCalendario.getInicio().getTime() <= eventoCalendario.getFim().getTime()){
			eventoCalendarioDAO = new EventoCalendarioDAO();
			try {
				eventoCalendarioDAO.salvar(eventoCalendario);
				listar();
			} catch (Exception e) {
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao salvar o evento", "Erro: "+e.getMessage()));
				e.printStackTrace();
			}
			eventoCalendario = new EventoCalendario();
		}else{
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Data inicial não pode ser maior que a inicial", "Data inicial não pode ser maior que a inicial"));
		}
	}else{
		try {
			eventoCalendarioDAO.editar(eventoCalendario);
			listar();
		} catch (Exception e) {
			FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao salvar o evento", "Erro: "+e.getMessage()));
		}
	}		
}

public void quandoMover(ScheduleEntryMoveEvent eventoCalen){
	for (EventoCalendario ev : listaEvento) {
		if(ev.getCodigo() == (Long)eventoCalen.getScheduleEvent().getData()){
			eventoCalendario = ev; 
			eventoCalendarioDAO = new EventoCalendarioDAO();
			try {
				eventoCalendarioDAO.editar(eventoCalendario);
				listar();
			} catch (Exception e) {
				e.printStackTrace();
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao salvar o evento", "Erro: "+e.getMessage()));		
			}
			break;
		}
	}
}

public void quandoRedimensionar(ScheduleEntryResizeEvent eventoCalen){
	for (EventoCalendario ev : listaEvento) {
		if(ev.getCodigo() == (Long)eventoCalen.getScheduleEvent().getData()){
			eventoCalendario = ev; 
			eventoCalendarioDAO = new EventoCalendarioDAO();
			try {
				eventoCalendarioDAO.editar(eventoCalendario);
				listar();
			} catch (Exception e) {
				e.printStackTrace();
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro ao salvar o evento", "Erro: "+e.getMessage()));		
			}
			break;
		}
	}
}

xhtml:

<p:schedule value="#{eventoCalendarioBean.eventoModel}"
widgetVar=“meuCalendario” id=“schEvento” timeZone="America/Sao_Paulo"
locale=“pt”>

		<p:ajax event="eventSelect"
			listener="#{eventoCalendarioBean.quandoSelecionado}"
			update=":formulario:eventoDetalhe" oncomplete="PF('caixaDialog').show();" />
			
		<p:ajax event="dateSelect"
			listener="#{eventoCalendarioBean.novo}"
			update=":formulario:eventoDetalhe" oncomplete="PF('caixaDialog').show();" />
			
		<p:ajax event="eventMove"
			listener="#{eventoCalendarioBean.quandoMover}"
			update=":formulario:schEvento"/>
			
		<p:ajax event="eventResize"
			listener="#{eventoCalendarioBean.quandoRedimensionar}"
			update=":formulario:schEvento"/>		
			
	</p:schedule>

	<p:dialog widgetVar="caixaDialog" header="Evento" resizable="false"	modal="true" showEffect="clip">
		<p:outputPanel id="eventoDetalhe">

			<h:panelGrid columns="2">
			
				<p:outputLabel value="Título" />
				<p:inputText
					value="#{eventoCalendarioBean.eventoCalendario.titulo}" />

				<p:outputLabel value="Início" />
				<p:calendar value="#{eventoCalendarioBean.eventoCalendario.inicio}"
					pattern="dd/MM/yyyy" />

				<p:outputLabel value="Fim" />
				<p:calendar value="#{eventoCalendarioBean.eventoCalendario.fim}"
					pattern="dd/MM/yyyy" />

				<p:outputLabel value="Status" />
				<p:selectBooleanCheckbox
					value="#{eventoCalendarioBean.eventoCalendario.status}" />

				<p:outputLabel value="Descrição" />
				<p:inputTextarea autoResize="true"
					value="#{eventoCalendarioBean.eventoCalendario.descricao}" />
			</h:panelGrid>

			<p:separator />

			<p:commandButton value="Salvar" actionListener="#{eventoCalendarioBean.salvar}" 
			update="msgGrowl schEvento" oncomplete="PF('caixaDialog').hide();"/>

		</p:outputPanel>
	</p:dialog>
1 curtida