0

In this code, I have used Personal personal=new Personal(); object. But I want to handle null pointer exception here. Please help with me the issue.

<%
if(personal!=null) {
    String sNo[] = personal.getsNo().split(",") ;
    String hsnCode[]=personal.getHsnCode().split(",");
    String modelNumber[] = personal.getModelNumber().split(",") ;
    String serialNumber[] = personal.getSerialNumber().split(",") ;
    String labourFree[] = personal.getLabourFree().split(",") ;
    String rate[] = personal.getRate().split(",") ;
    String qty[] = personal.getQuantity().split(",") ;
    String gstSelect[] = personal.getGst().split(",") ;
    String amount[] = personal.getAmount().split(",") ;

 if(modelNumber.length>0){
   for(int i=0;i<modelNumber.length;i++){
%>
    <tr>
        <td>&nbsp;<%=sNo[i] %></td>
        <td>&nbsp;<%=hsnCode[i]%></td>
        <td>&nbsp;<%=modelNumber[i] %></td>
        <td>&nbsp;<%=serialNumber[i] %></td>
        <%-- <td>&nbsp;<%=labourFree[i] %></td> --%>
        <td>&nbsp;<%=rate[i] %></td>
        <td>&nbsp;<%=qty[i] %></td>
        <td>&nbsp;<%=gstSelect[i] %></td>
        <td>&nbsp;<%=amount[i] %></td>
    </tr>
    <%
     }
   }
}
%>

When I'm using this code on local then I did not get any excpetion but got excption only on hosting server

Stacktrace,

org.apache.jasper.JasperException: An exception occurred processing JSP page /completeDetail.jsp at line 124

121: <%
122: 
123: if(personal!=null) {
124: String sNo[] = personal.getsNo().split(",") ;
125: String hsnCode[]=personal.getHsnCode().split(",");
126: String modelNumber[] = personal.getModelNumber().split(",") ;
127: String serialNumber[] = personal.getSerialNumber().split(",") ;


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.NullPointerException
    org.apache.jsp.completeDetail_jsp._jspService(completeDetail_jsp.java:211)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.59 logs.
Vinoth Krishnan
  • 2,925
  • 6
  • 29
  • 34

1 Answers1

0

I want to express few concerns in your code before answering this question. As per the first comment please refrain using java code inside jsp file.

Please visit that answer to understand the brief explanation from user BalusC.

Now coming to your question, You've checked only the object personal is not null. But inside the object there maybe the chance of getting null values too. So don't split the string before checking whether it's null or not.

String[] serialNumber, labourFree;
if(personal.getSerialNumber() != null){
   serialNumber[] = personal.getSerialNumber().split(",") ;
}
if(personal.getLabourFree() != null){
   labourFree[] = personal.getLabourFree().split(",") ;
}

Do it for all the fields. It's always better to check null before doing something with that value. Please let me know if this helps.

Cheers..!

Vinoth Krishnan
  • 2,925
  • 6
  • 29
  • 34