Friday 1 December 2017

debugging - How to read and understand the java stack trace?






For example, I got a stack trace like
this:



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)


So
what is the root cause of this exception?
From the stack trace, I found out
that there is a problem with doFilter function in the
OncePerRequestFilter class! However, when I put a break point
there and the program never stop at that break
point.



Could anyone give explanation about
this!?
And in general case, how should I use that stack case for debugging
(read from bottom to top or from top to bottom)!




Answer




Generally the exact reason for the
Exception is at the first line of your Stack Trace, and for
more information about the cause of that exception, you need to gradually move down, and
the root cause can often be found somewhere near the bottom of the stack
trace.



But in most cases, you can even get the
cause of the exception from the first few
lines..



So, in this case, your exception is at
handleRequest method, and when you move downwards, those are
the methods, which invoked your previous method (The one at above the current method in
stack trace)


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...