Erro: java.lang.NullPointerException ao gerar relatório Java

Pessoal,

Tenho uma aplicação e toda as vezes que clico no botão para gerar o relatório surge uma mensagem de erro: NullPointerException, já testei de várias formas, inclusive com o relatório em branco e mesmo assim o erro persiste, por favor uma ajuda.

> jan 05, 2018 5:56:44 AM javax.faces.event.MethodExpressionActionListener processAction
> GRAVE: 'java.lang.NullPointerException' recebido ao invocar escuta de ação '#{fabricanteBean.imprimir}' para o componente 'j_idt29'
> jan 05, 2018 5:56:44 AM javax.faces.event.MethodExpressionActionListener processAction
> GRAVE: java.lang.NullPointerException
> 	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:138)
> 	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:555)
> 	at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:396)
> 	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:91)
> 	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:286)
> 	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:759)
> 	at br.com.drogaria.bean.FabricanteBean.imprimir(FabricanteBean.java:156)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
> 	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
> 	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)
> 	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:84)
> 	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:773)
> 	at javax.faces.component.UICommand.broadcast(UICommand.java:296)
> 	at javax.faces.component.UIData.broadcast(UIData.java:912)
> 	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
> 	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
> 	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
> 	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
> 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
> 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
> 	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)
> 
> jan 05, 2018 5:56:44 AM com.sun.faces.context.AjaxExceptionHandlerImpl log
> GRAVE: JSF1073: javax.faces.event.AbortProcessingException obtido durante o processamento de INVOKE_APPLICATION 5: UIComponent-ClientId=j_idt23:j_idt26, Message=java.lang.NullPointerException
> jan 05, 2018 5:56:44 AM com.sun.faces.context.AjaxExceptionHandlerImpl log
> GRAVE: java.lang.NullPointerException
> javax.faces.event.AbortProcessingException: java.lang.NullPointerException
> 	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:178)
> 	at javax.faces.event.ActionEvent.processListener(ActionEvent.java:84)
> 	at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:773)
> 	at javax.faces.component.UICommand.broadcast(UICommand.java:296)
> 	at javax.faces.component.UIData.broadcast(UIData.java:912)
> 	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
> 	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
> 	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
> 	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
> 	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
> 	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
> 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> 	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
> 	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
> 	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
> 	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
> 	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)
> Caused by: java.lang.NullPointerException
> 	at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:138)
> 	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:555)
> 	at net.sf.jasperreports.engine.fill.BaseReportFiller.fill(BaseReportFiller.java:396)
> 	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:91)
> 	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:286)
> 	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:759)
> 	at br.com.drogaria.bean.FabricanteBean.imprimir(FabricanteBean.java:156)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at org.apache.el.parser.AstValue.invoke(AstValue.java:278)
> 	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
> 	at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:149)
> 	... 30 more
> 
> Hibernate: select fabricante0_.fab_codigo as fab_codi1_0_, fabricante0_.fab_descricao as fab_desc2_0_ from tbl_fabricante fabricante0_ 

Na view: fabricantePesquisa.xhtml

<p:commandButton icon="ui-icon-print" actionListener="#{fabricanteBean.imprimir}"/>

No FabricanteBean:

public void imprimir(){
		try{
		String caminho = Faces.getRealPath("/reports/fabricante.jasper");
		Map<String, Object> parametros = new HashMap<>();
		Connection conexao = HibernateUtil.getConexao();
		
		JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao);
		JasperPrintManager.printReport(relatorio, true);
		}catch(JRException e){
			FacesUtil.adicionarMsgInfo("Ocorreu um erro ao tentar gerar o relatorio:  "+e);
			e.printStackTrace();
		}
	}

Bom dia!

Esse tipo de problema geralmente ocorre qdo o report não foi compilado corretamente antes de ser renderizado. Já experimentou compilar pra ver se ele consegue?

Vc utiliza o IReport pra montar seus relatórios, provavelmente, né? Tenta recompilar. Na própria comunidade do Jasper eles sempre orientam fazer isso, exceto qdo há conflito de bibliotecas, que, nesse caso, vc teria que pegar sempre que possível as mais recentes.