¿Cómo leer y comprender el rastro de la stack java?

Por ejemplo, obtuve un seguimiento de stack como este:

java.lang.NullPointerException abc.investxa.presentation.controllers.UnixServerJobController.handleRequest(UnixServerJobController.java:66) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 

Entonces, ¿cuál es la causa raíz de esta excepción? Desde el seguimiento de la stack, descubrí que hay un problema con la función doFilter en la clase OncePerRequestFilter . Sin embargo, cuando pongo un punto de quiebre allí y el progtwig nunca se detiene en ese punto de quiebre.

¿Alguien podría dar una explicación sobre esto? Y en el caso general, ¿cómo debo usar ese caso de stack para la depuración (leer de abajo hacia arriba o de arriba a abajo)!

En general, la razón exacta de la Exception encuentra en la primera línea de su Stack Trace, y para obtener más información sobre la causa de esa excepción, debe avanzar gradualmente hacia abajo, y la causa raíz a menudo se puede encontrar en algún lugar cerca de la parte inferior de la stack rastro.

Pero en la mayoría de los casos, incluso puede obtener la causa de la excepción de las primeras líneas.

Entonces, en este caso, su excepción es en el método handleRequest , y cuando se mueve hacia abajo, esos son los métodos, que invocaron su método anterior (el que está arriba del método actual en el seguimiento de stack)

En general, debe leer desde la parte superior, por lo que en este caso, hay una NullPointerException en la línea 66 de UnixServerJobController, en el método handleRequest . Ese método fue llamado por SimpleControllerHandlerAdapter.handle , que fue llamado por DispatcherServlet.doDispatch etc.

Sin embargo, en este caso particular, es probable que el primer cuadro de la traza de stack sea todo lo que necesita. Mire la línea 66 de UnixServerJobController , resuelva lo que podría ser nulo y actúe en consecuencia.

Tenga en cuenta que a veces una excepción se envuelve en otra (que a su vez puede estar envuelta en otra, etc.). En este caso, debe observar cada uno de los seguimientos de stack: a menudo es la excepción “más anidada” la que proporciona la información más útil, ya que esa es la causa raíz.

Este tutorial puede arrojar algo de luz sobre su problema y ayudarlo a comprender mejor las cosas.

Según su problema, parece que tiene una Excepción de puntero nulo en la línea 66 de la clase Controladora de trabajo del servidor Unix.