Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8660935
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 12, 20262026-06-12T16:22:49+00:00 2026-06-12T16:22:49+00:00

I am getting null pointer exception here: List fileItems = upload.parseRequest(req); That happens if

  • 0

I am getting null pointer exception here:

List fileItems = upload.parseRequest(req);

That happens if the number of line in the file is greater the 2000 approx, as I could upload the file of lines above 1000. Someone please help me out. The form is below.

<form name="fos_picks" id="fos_picks" action="<%=path%>/fos_upld" method="post" enctype="multipart/form-data" >

<br/><br/><br/><br/>
<p align="center">
    <input type="file" name="file" size="50" /><br/>
    <br/>
    <input type="submit" class="buttons" value="Upload File" />
    </p>
</form>

Upload controller code…

 package file_proc;
import DBConn.DBConn;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.sql.PreparedStatement;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


@WebServlet(name="file_upld", urlPatterns = {"/file_upld"}) 

public class file_upld extends HttpServlet {

   private boolean isMultipart;
   private String filePath;
   private int maxFileSize = 50 * 1024;
   private int maxMemSize = 10 * 1024;
   private File file ;

/*   public void init( ){
      // Get the file location where it would be stored.
      filePath = 
             getServletContext().getInitParameter("file-upload"); 
   }*/
    @Override
   public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, java.io.IOException {
      // Check that we have a file upload request
       java.io.PrintWriter out = res.getWriter( );
    //   out.println("entered");
      isMultipart = ServletFileUpload.isMultipartContent(req);

      res.setContentType("text/html");

      if( !isMultipart ){
         out.println("!multipart");
         System.out.println("here");
         return;
      }
      DiskFileItemFactory factory = new DiskFileItemFactory();
      // maximum size that will be stored in memory
      factory.setSizeThreshold(maxMemSize);
      // Location to save data that is larger than maxMemSize.
      factory.setRepository(new File("c:/temp"));
      // Create a new file upload handler
      ServletFileUpload upload = new ServletFileUpload(factory);
      // maximum file size to be uploaded.
      upload.setSizeMax( maxFileSize );
 ServletContext servletContext = getServletContext();
    String path = servletContext.getRealPath("/");
     BufferedReader br=null;
     String fileName="";
     DBConn db = new DBConn();

      try{ 
      // Parse the request to get file items.
          System.out.println("here1"+req);
      List fileItems = upload.parseRequest(req);

      // Process the uploaded file items
      Iterator i = fileItems.iterator();

/*      out.println("<html>");
      out.println("<head>");
      out.println("<title>Upload</title>");  
      out.println("</head>");
      out.println("<body>");*/
      while ( i.hasNext () ) 
      {
         FileItem fi = (FileItem)i.next();
         if ( !fi.isFormField () )  
         {
            // Get the uploaded file parameters
            String fieldName = fi.getFieldName();
            fileName = fi.getName();
            String contentType = fi.getContentType();
            boolean isInMemory = fi.isInMemory();
            long sizeInBytes = fi.getSize();
            // Write the file
            if( fileName.lastIndexOf("\\") >= 0 ){
               file = new File( "c:/Temp/" + 
               fileName.substring( fileName.lastIndexOf("\\"))) ;
            }else{
               file = new File( "c:/Temp/"+ 
               fileName.substring(fileName.lastIndexOf("\\")+1)) ;
            }
            if(!file.exists())
            {
                File fold=new File(file.getParent());
                fold.mkdirs();
            }
            fi.write( file ) ;
            System.out.println("Uploaded Filename: " + fileName + "<br>");
         }
      }
      }catch(Exception ce)
      {
            out.println("<font size='30' color='red'>Error Code 016</font>");
        //out.println("Exception1: "+ce);
      }
 //read uploaded file and insert into table********************************************  

    //      String newline = System.getProperty("line.separator");
//  File file = new File(path+"//"+fileName);
            //  file.createNewFile();
try{

    if(file.isFile())
    {
         br = new BufferedReader(new FileReader(file));
    String str="";
    String temp[]=null;


        file.canWrite();
        file.canRead();
        file.setWritable(true);

        db.conn.setAutoCommit(false);
        while((str=br.readLine())!=null)
                    {
                        temp=str.split("    ");

                //      PreparedStatement ps = db.conn.prepareStatement("INSERT INTO file_proc VALUES(?,?,?,?,?,?,?,?,?,STR_TO_DATE(?,'%m/%d/%Y'))");
                        PreparedStatement ps = db.conn.prepareStatement("INSERT INTO file_proc(run_date,zone,location,bank,file_type,num_rec,ex_sett_date,ex_stat_date) "
                                                        + "VALUES(STR_TO_DATE(?,'%m/%d/%Y'),?,?,?,?,?,STR_TO_DATE(?,'%m/%d/%Y'),STR_TO_DATE(?,'%m/%d/%Y'))");
                        ps.setString(1,temp[0]);
                        ps.setString(2,temp[1]);
                        ps.setString(3,temp[2]);
                        ps.setString(4,temp[3]);
                        ps.setString(5,temp[4]);
                        ps.setInt(6,Integer.parseInt(temp[5]));
                        ps.setString(7,temp[6]);
                        ps.setString(8,temp[7]);
                        ps.executeUpdate();
                        ps.close();     

                    }   
                    db.conn.commit();
                    db.conn.setAutoCommit(true);
                    db.conn.close();
                    br.close(); 
        file.delete();  

       //  RequestDispatcher rd = req.getRequestDispatcher("./status/status.jsp");
        //  rd.forward(req, res);
          out.print("success");
     //     out.println("</html>");
    }
    else
    {
        out.println(file+" is not a file");
    }           

   }catch(Exception ex) {
    out.println("file name= "+fileName);
      // out.println("DBEX= "+ex );
        out.println("<font size='30' color='red'>Error Code 017 - Recommended date format = m/d/yyyy.</font>");
        out.println("<font size='30' color='red'>Check the column order</font>"+ex);    
      //file.delete();  
     //  RequestDispatcher rd = req.getRequestDispatcher("./status/error.jsp");
//  rd.forward(req, res);
   }finally{
                    try{
                        db.conn.close();
                        br.close();
                    }catch(Exception e){}
                }
   }
    @Override
   public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, java.io.IOException {

       doPost(request, response);  
   } 
}

**** Here is form ******

<form name="file_proc" id="file_proc" method = "post" action="../file_upld" enctype="multipart/form-data">
    <br/><br/><br/><br/>
    <p align="center">
<input type="file" id="file" name="file" size="50" /><br/>
<br/>
<input type="submit" class="buttons" value="Upload File" />br/><br/><br/>
     </p>
</form>

Upload controller code…

 package file_proc;
import DBConn.DBConn;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.sql.PreparedStatement;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;


@WebServlet(name="file_upld", urlPatterns = {"/file_upld"}) 

public class file_upld extends HttpServlet {

   private boolean isMultipart;
   private String filePath;
   private int maxFileSize = 50 * 1024;
   private int maxMemSize = 10 * 1024;
   private File file ;

/*   public void init( ){
      // Get the file location where it would be stored.
      filePath = 
             getServletContext().getInitParameter("file-upload"); 
   }*/
    @Override
   public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, java.io.IOException {
      // Check that we have a file upload request
       java.io.PrintWriter out = res.getWriter( );
    //   out.println("entered");
      isMultipart = ServletFileUpload.isMultipartContent(req);

      res.setContentType("text/html");

      if( !isMultipart ){
         out.println("!multipart");
         System.out.println("here");
         return;
      }
      DiskFileItemFactory factory = new DiskFileItemFactory();
      // maximum size that will be stored in memory
      factory.setSizeThreshold(maxMemSize);
      // Location to save data that is larger than maxMemSize.
      factory.setRepository(new File("c:/temp"));
      // Create a new file upload handler
      ServletFileUpload upload = new ServletFileUpload(factory);
      // maximum file size to be uploaded.
      upload.setSizeMax( maxFileSize );
 ServletContext servletContext = getServletContext();
    String path = servletContext.getRealPath("/");
     BufferedReader br=null;
     String fileName="";
     DBConn db = new DBConn();

      try{ 
      // Parse the request to get file items.
          System.out.println("here1"+req);
      List fileItems = upload.parseRequest(req);

      // Process the uploaded file items
      Iterator i = fileItems.iterator();

/*      out.println("<html>");
      out.println("<head>");
      out.println("<title>Upload</title>");  
      out.println("</head>");
      out.println("<body>");*/
      while ( i.hasNext () ) 
      {
         FileItem fi = (FileItem)i.next();
         if ( !fi.isFormField () )  
         {
            // Get the uploaded file parameters
            String fieldName = fi.getFieldName();
            fileName = fi.getName();
            String contentType = fi.getContentType();
            boolean isInMemory = fi.isInMemory();
            long sizeInBytes = fi.getSize();
            // Write the file
            if( fileName.lastIndexOf("\\") >= 0 ){
               file = new File( "c:/Temp/" + 
               fileName.substring( fileName.lastIndexOf("\\"))) ;
            }else{
               file = new File( "c:/Temp/"+ 
               fileName.substring(fileName.lastIndexOf("\\")+1)) ;
            }
            if(!file.exists())
            {
                File fold=new File(file.getParent());
                fold.mkdirs();
            }
            fi.write( file ) ;
            System.out.println("Uploaded Filename: " + fileName + "<br>");
         }
      }
      }catch(Exception ce)
      {
            out.println("<font size='30' color='red'>Error Code 016</font>");
        //out.println("Exception1: "+ce);
      }
 //read uploaded file and insert into table********************************************  

    //      String newline = System.getProperty("line.separator");
//  File file = new File(path+"//"+fileName);
            //  file.createNewFile();
try{

    if(file.isFile())
    {
         br = new BufferedReader(new FileReader(file));
    String str="";
    String temp[]=null;


        file.canWrite();
        file.canRead();
        file.setWritable(true);

        db.conn.setAutoCommit(false);
        while((str=br.readLine())!=null)
                    {
                        temp=str.split("    ");

                //      PreparedStatement ps = db.conn.prepareStatement("INSERT INTO file_proc VALUES(?,?,?,?,?,?,?,?,?,STR_TO_DATE(?,'%m/%d/%Y'))");
                        PreparedStatement ps = db.conn.prepareStatement("INSERT INTO file_proc(run_date,zone,location,bank,file_type,num_rec,ex_sett_date,ex_stat_date) "
                                                        + "VALUES(STR_TO_DATE(?,'%m/%d/%Y'),?,?,?,?,?,STR_TO_DATE(?,'%m/%d/%Y'),STR_TO_DATE(?,'%m/%d/%Y'))");
                        ps.setString(1,temp[0]);
                        ps.setString(2,temp[1]);
                        ps.setString(3,temp[2]);
                        ps.setString(4,temp[3]);
                        ps.setString(5,temp[4]);
                        ps.setInt(6,Integer.parseInt(temp[5]));
                        ps.setString(7,temp[6]);
                        ps.setString(8,temp[7]);
                        ps.executeUpdate();
                        ps.close();     

                    }   
                    db.conn.commit();
                    db.conn.setAutoCommit(true);
                    db.conn.close();
                    br.close(); 
        file.delete();  

       //  RequestDispatcher rd = req.getRequestDispatcher("./status/status.jsp");
        //  rd.forward(req, res);
          out.print("success");
     //     out.println("</html>");
    }
    else
    {
        out.println(file+" is not a file");
    }           

   }catch(Exception ex) {
    out.println("file name= "+fileName);
      // out.println("DBEX= "+ex );
        out.println("<font size='30' color='red'>Error Code 017 - Recommended date format = m/d/yyyy.</font>");
        out.println("<font size='30' color='red'>Check the column order</font>"+ex);    
      //file.delete();  
     //  RequestDispatcher rd = req.getRequestDispatcher("./status/error.jsp");
//  rd.forward(req, res);
   }finally{
                    try{
                        db.conn.close();
                        br.close();
                    }catch(Exception e){}
                }
   }
    @Override
   public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, java.io.IOException {

       doPost(request, response);  
   } 
}

**** Here is form ******

<form name="file_proc" id="file_proc" method = "post" action="../file_upld" enctype="multipart/form-data">
    <br/><br/><br/><br/>
    <p align="center">
<input type="file" id="file" name="file" size="50" /><br/>
<br/>
<input type="submit" class="buttons" value="Upload File" />br/><br/><br/>
     </p>
</form>

here is the log4j stuff, it shows the error at filter.java, which i am not using in the current servlet.

[ERROR] 29:05(file_upld.java:doPost:172) failed!

java.lang.NullPointerException at
file_proc.file_upld.doPost(file_upld.java:120) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:641) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at filter.filter.doFilter(filter.java:16) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Here goes the filter.javapackage filter;

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;

public class filter implements Filter{

    private FilterConfig config=null;
    @Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException 
{
    HttpServletResponse hsr = (HttpServletResponse) res;
    hsr.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
    hsr.setHeader("Pragma", "no-cache"); // HTTP 1.0.
    hsr.setDateHeader("Expires", 0); // Proxies.
    chain.doFilter(req, res);
}
    @Override
    public void destroy() { }
    @Override
  public void init(FilterConfig config) {
  this.config = config;
  }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-12T16:22:49+00:00Added an answer on June 12, 2026 at 4:22 pm

    Your concrete problem is caused by bad exception handling and tight-coupling view with the controller.

    After filtering noise from your code, it goes roughly like:

    File file = null;
    
    try {
        // ... 
        file = new File(...);
        // ... 
    } catch (Exception e) {
        out.println("...");
    }
    
    try {
        if (file.isFile())
            // ...
        } else {
            // ...
        }
    } catch (Exception e) {
        out.println("...");
    }
    

    The NullPointerException is been thrown at the line with the if (file.isFile()) block. This thus means that the first try block threw an exception, hereby leaving the file as null.

    The cause of the problem is two-fold:

    1. The first try block is not returning from the servlet method on exception, but incorrectly continuing the code flow.
    2. The second try block is not checking beforehand if the file is not null.

    Your concrete problem is however much bigger. You’re completely swallowing exceptions and printing irrelevant HTML code instead of throwing them through and/or logging the exceptions.

    Replace your catch blocks as follows:

    } catch (Exception e) {
        throw new ServletException(e);
    }
    

    By default, this way the exception will be logged and be displayed in its full glory, complete with the stacktrace, in a HTTP 500 error page. The stacktrace gives you a wealth of information to understand the problem and fix it.


    Unrelated to the concrete problem, there are many other conceptual and design mistakes in the code, but they are so far not directly related to the concrete problem. I would however recommend to take a pause and go through some sane Servlet books/tutorials/resources. This code seems to be just cobbled together based on snippets found in Google instead of being well thought out written. The first step would be understanding how servlets actually work: How do servlets work? Instantiation, sessions, shared variables and multithreading

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

i'm getting a weird null pointer exception in the last line of this code:
Hi i am getting a null pointer exception while running my application.. Here is
Here s my getView() method. I am getting null pointer exception while inflating. There
Why am i getting this null pointer exception. Here is my code I am
Hi i am reading inbox using service but i m getting null pointer exception
I am getting a null pointer exception report in the android developer console. I
I'm getting a Null Pointer Exception when using my web app. This exception is
i'm a new android developper and i'm getting a null pointer exception when i
Im getting a null pointer exception when I attempt to get an array of
I am getting Null Pointer Exception for ImageView imag = (ImageView) findViewById(R.id.image). I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.