> Hi,
> Still getting the NPE.
> After adding more debugging log messages, I
> have been able to pinpoint the line throwing
> the NPE but can't figure out why it does.
> It's the srvOut.println() call in printW() that's
> the trouble spot.
> Advice please ! Error and code below.
> Also, Craig, could you please elaborate on how to
> fix the multiple-users-will-make-it-crash problem,
> using method variables as you said in your earlier reply.
> Vasudev
> Error :
> ======================================================
> Host : atlas
> id To1010mC676918158975596At
> created Sat Nov 20 16:50:39 GMT+05:30 1999
> lastaccessed Sat Nov 20 16:50:55 GMT+05:30 1999
> uptime output:
> 4:51pm up 40 days, 1:08, 24 users, load average: 3.63, 3.15, 2.63
> who output:
> Error: 500
> Internal Servlet Error:
> java.lang.NullPointerException
>         at SrvStat.printW(SrvStat.java:199)
>         at SrvStat.doGet(SrvStat.java:87)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:715)
        ...
> Code :
> import java.io.*;
> import java.text.*;
> import java.util.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> public class SrvStat extends HttpServlet {
>       PrintWriter srvOut; // servlet output stream
>       PrintWriter prcOut; // output stream to process input
>       PrintWriter logOut; // output stream for log file for program
>       File logFile; // log file for program
>       BufferedReader prcIn; // input stream from process output
>       Runtime runtime; // to start the process
>       Process process; // a process
>       String command; // command to run and write/read to/from
>       String result;
>     public void doGet(HttpServletRequest request, HttpServletResponse
> response)
>         throws IOException, ServletException
>     {
>               logFile = new File("/tmp/SrvStat.log");
>               logOut = new PrintWriter( new FileWriter(logFile), true);
>         response.setContentType("text/html");
>         PrintWriter srvOut = response.getWriter();
>               runtime = Runtime.getRuntime();
>         srvOut.println("<html>");
>         srvOut.println("<body bgcolor=\"white\">");
>         srvOut.println("<head>");
>         String title = "Server Status";
>         srvOut.println("<title>" + title + "</title>");
>         srvOut.println("</head>");
>         srvOut.println("<body>");
>         srvOut.println("<h2>Host : " + getHostName() + "</h2>");
>         srvOut.println("<br><hr>");
>         HttpSession session = request.getSession();
>         srvOut.println("<P><hr>");
>         String uptimeOn = request.getParameter("uptime");
>         if (uptimeOn != null) {
>                       if (uptimeOn.equals("on")) {
>                               srvOut.println("uptime output: <br>" +
>                                       getUptime() + "<br><hr>");
>                       }
>               }
>         String wOn = request.getParameter("w");
>         if (wOn != null) {
>                       if (wOn.equals("on")) {
>                               logOut.println("Before calling printW");
>                               srvOut.println("who output: <br>");
>                               printW();
>                               srvOut.println("<br><hr>");
>                       }
>               }
>         srvOut.println("<P>");
>         srvOut.print("<form action=\"");
>         srvOut.print("SrvStat\" ");
>         srvOut.println("method=GET>");
>         srvOut.println("<input type=checkbox name=uptime>");
> srvOut.println("uptime");
>         srvOut.println("<br>");         srvOut.println("<input
> type=checkbox name=w>");
>         srvOut.println("w");         srvOut.println("<br>");
>         srvOut.println("<input type=submit>");
> srvOut.println("</form>");
>         srvOut.println("</body>");         srvOut.println("</html>");
>         srvOut.close();
>     }
>
>       String getHostName() throws IOException {
>               try {
>                       command = "hostname";                   process =
> runtime.exec(command);
>                       prcOut = new PrintWriter( new OutputStreamWriter (
>                               process.getOutputStream() ) );
>                       prcIn = new BufferedReader( new InputStreamReader (
>                               process.getInputStream() ) );
>                       result = prcIn.readLine();
>               }
>               catch(Exception e) {
>                       result = "Error executing " + command + ": " +
> e.getMessage();
>               }
>               return result;
>       }
>       String getUptime() throws IOException {
>               try {
>                       command = "sh -c \"who | sed 1q\"";
>                       process = runtime.exec(command);
>                       prcOut = new PrintWriter( new OutputStreamWriter (
>                               process.getOutputStream() ) );
>                       prcIn = new BufferedReader( new InputStreamReader (
>                               process.getInputStream() ) );
>                       result = prcIn.readLine();
>               }
>               catch(Exception e) {
>                       result = "Error executing " + command +
>                       ": " + e.getMessage();
>               }
>               finally {
>                       prcOut.close();
>                       prcIn.close();
>                       return result;
>               }
>       }
>       void printW() throws IOException {
>               try {
>                       command = "date";
>                       process = runtime.exec(command);
>                       logOut.println("Before calling getOutputStream");
>                       prcOut = new PrintWriter( new OutputStreamWriter (
>                               process.getOutputStream() ) );
>                       logOut.println("Before calling getInputStream");
>                       prcIn = new BufferedReader( new InputStreamReader (
>                               process.getInputStream() ) );
>                       result = ""; String line = "";
>                       line = prcIn.readLine();
>                       srvOut.println("<br>" + line);
>                       while (line != null) {
>                               srvOut.println("<br>"); // + line);
>                               line = prcIn.readLine();
>                       }
>               }
>               catch(Exception e) {
>                       srvOut.println("Error executing " + command +
>                       ": " + e.getMessage());
>                       logOut.println("Leaving catch clause");
>               }
>               finally {
>                       try {
>                               prcOut.close();
>                               prcIn.close();
>                       }
>                       catch(Exception e) {
>                               e.getMessage());
>                       }
>               }
>       }
> }
>

___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".

Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html

Reply via email to