Erro com variavel transiente

8 respostas
S

public void upload(FileUploadEvent evento) {

try {
		UploadedFile arquivoUpload = evento.getFile();
		Path arquivoTemp = Files.createTempFile(null, null);

		Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING);
		sepultado.setCaminho(arquivoTemp.toString());
		System.out.println(sepultado.getCaminho());

	} catch (IOException e) {
		System.out.println("Fudeu");
	}
}

}

Pilha

ADVERTÊNCIA: /templates/ModeloGeral.xhtml @53,86 fileUploadListener="#{fotobean.upload}": java.lang.NullPointerException

javax.el.ELException: /templates/ModeloGeral.xhtml @53,86 fileUploadListener="#{fotobean.upload}": java.lang.NullPointerException

at com.sun.faces.facelets.el.TagMethodExpression.invoke(Unknown Source)

at org.primefaces.component.fileupload.FileUpload.broadcast(FileUpload.java:310)

at javax.faces.component.UIViewRoot.broadcastEvents(Unknown Source)

at javax.faces.component.UIViewRoot.processDecodes(Unknown Source)

at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(Unknown Source)

at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)

at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source)

at javax.faces.webapp.FacesServlet.service(Unknown Source)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

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 br.com.TccCemiterio.Bean.Fotobean.upload(Fotobean.java:40)

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:247)

at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:267)

 30 more

jan 29, 2018 3:00:08 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
GRAVE: java.lang.NullPointerException

8 Respostas

darlan_machado

A mensagem é auto explicativa.
Qual a dúvida?

S

Não entendi não

darlan_machado

Então não leu a mensagem.
Ela diz que um elemento é nulo.
Tecnicamente, não tem a ver com o fato de você ter algo transient ou não, tem a ver com o fato de que você não setou nenhum valor para tal atributo.

S

Bom é ai que não entendi, está sendo passado sim
sepultado.setCaminho(arquivoTemp.toString());

darlan_machado

Não tem como fazermos uma análise sem conhecer todas as partes envolvidas.
O que eu consigo ver, pois você disponibilizou a informação, é que, na execução do método upload, alguma cosia está nula e você está tentando invocar um método dessa alguma coisa.
Ou você debuga e identifica qual dos objetos está nulo ou você pode inserir várias validações e lançar uma exceção referente à variável nula.

staroski

O objeto sepultado foi inicializado?

raphaeloneves

Poste todo o seu MB (variáveis, métodos envolvidos, etc).
Refaço a pergunta do Ricardo, o objeto sepultado foi inicializado?

darlan_machado

Sendo bem específico, o que tem na linha 40 da classe Fotobean?

Criado 29 de janeiro de 2018
Ultima resposta 30 de jan. de 2018
Respostas 8
Participantes 4