Firstly, I am an experienced programmer, but very little familiar with Java. I have two years of experience working with him eight years ago.
I get a NullPointerException in the following code:
public static void handle(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException { Response gfexResponse = null; try { ActionFactory actionFactory = ActionFactory.getInstance(); String requestURL = request.getRequestURI(); String actionId = actionFactory.getActionId(requestURL); IAction action = actionFactory.createAction(actionId); ActionEvent event = new ActionEvent(request, 0, actionId); gfexResponse = action.execute(event); } catch (Exception ex) { gfexResponse = new Response(); gfexResponse.setError(ex.getMessage()); gfexResponse.setOutcome(IViewConstants.ERROR); } finally { if(request.getParameter("loginId") != null){ request.setAttribute("loginId", request.getParameter("loginId")); } if(gfexResponse.getMessage()!= null){ request.setAttribute("message", gfexResponse.getMessage()); } if(gfexResponse.getError()!= null){ request.setAttribute("error", gfexResponse.getError()); } if (gfexResponse.getContentType() != null) { response.setContentType(gfexResponse.getContentType()); OutputStream outputStream = response.getOutputStream(); outputStream.write(gfexResponse.getOutputData()); outputStream.flush(); outputStream.close(); } if(gfexResponse.getOutcome() != null){ RequestDispatcher dispatcher = request.getRequestDispatcher(gfexResponse.getOutcome()); dispatcher.forward(request, response); } } }
Here's the StackTrace:
[6/18/13 17:10:04:518 GMT] 00000023 ServletWrappe E SRVE0068E: Uncaught exception thrown in one of the service methods of the servlet: GfexServlet. Exception thrown : java.lang.NullPointerException at com.svl.gfex.handlers.RequestHandler.handle(RequestHandler.java:44) at com.svl.gfex.servlets.GfexServlet.processRequest(GfexServlet.java:43) at com.svl.gfex.servlets.GfexServlet.doPost(GfexServlet.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:966) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:907) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:701) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:646) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:475) at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:463) at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3129) at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:238) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:811) at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1433) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:93) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:394) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:152) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:213) at com.ibm.io.async.AbstractAsyncFuture.fireCompletionActions(AbstractAsyncFuture.java:195) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:194) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:741) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:863) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)
The stacktrace element points to this line:
if(gfexResponse.getMessage()!= null){ <-------- this line request.setAttribute("message", gfexResponse.getMessage()); }
This code was maintained by an offshore contractor, but the company fired all contractors. For my sins, they gave me work to correct it.
If anyone can help me understand why I am getting this error, I would appreciate it.
Kevin
source share