title: How to read and understand the java stack trace?
body: <p>For example, I got a stack trace like this:</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>So what is the root cause of this exception?
  From the stack trace, I found out that there is a problem with <code>doFilter</code> function in the <code>OncePerRequestFilter</code> class! However, when I put a break point there and the program never stop at that break point.</p>
  
  <p>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)!</p>