1
resposta

java.lang.NullPointerException: null ao buscar tópico por id que foi enserido via POST

Boa tarde Rodrigo, tudo bem? finalizei o curso de segurança, tudo funcionando perfeitamente na parte de autorização e autenticação, porém faço um Post de tópico pelo Postman, insere normalmente o tópico, quando faço a busca paginada o tópico é retornado, mas ao pesquisar pelo id, ocorre o erro abaixo, somente se buscar o tópico q foi inserido via POST, os tópicos inseridos via seed retornam normalmente:

2021-11-08 23:19:57.293 ERROR 7612 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

java.lang.NullPointerException: null
    at br.com.andrezasecon.forum.dto.DetalhesDoTopicoDto.<init>(DetalhesDoTopicoDto.java:27) ~[classes/:na]
    at br.com.andrezasecon.forum.controllers.TopicosController.detalhar(TopicosController.java:72) ~[classes/:na]
    at br.com.andrezasecon.forum.controllers.TopicosController$$FastClassBySpringCGLIB$$f055c27.invoke(<generated>) ~[classes/:na]
    at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.12.jar:5.3.12]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689) ~[spring-aop-5.3.12.jar:5.3.12]
    at br.com.andrezasecon.forum.controllers.TopicosController$$EnhancerBySpringCGLIB$$3bdc682a.detalhar(<generated>) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.12.jar:5.3.12]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.12.jar:5.3.12]
    at 

Se puder me ajudar, link do projeto no github: https://github.com/andrezasecon/forum/tree/main/forum

1 resposta

Oi Andreza,

Pela exception o problema está aqui: at br.com.andrezasecon.forum.dto.DetalhesDoTopicoDto.<init>(DetalhesDoTopicoDto.java:27)

Nessa sua classe Dto na linha 27 tem isso:

this.nomeAutor = topico.getAutor().getNome();

Como foi uma exception de NullPointerException, é provável que o Autor do tópico esteja null e causando o erro.

Como você ainda não fez a parte de pegar o usuário logado e setar como usuário do tópico, realmente vai ficar null e dar nullpointer.

Altere então essa linha 27 para:

if(topico.getAutor() != null) {
    this.nomeAutor = topico.getAutor().getNome();    
}

Bons estudos!