Announcement

Collapse
No announcement yet.

Kann sich der Tomcat aufgrund einer NullPointerException in einer JSP aufhängen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Kann sich der Tomcat aufgrund einer NullPointerException in einer JSP aufhängen?

    Hallo,

    ich hab einen sporadisch auftretenden Fehler beim Tomcat 5.5.26 unter Solaris.

    Es äußert sich so, dass der Tomcat sich komplett aufhängt und nicht mehr reagiert.

    Im localhost logfile des Tomcat sehe ich folgende Meldung.

    Code:
    15.05.2009 11:37:08 org.apache.catalina.core.StandardHostValve custom
    SCHWERWIEGEND: Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/xxx/exception.jsp]
    java.lang.IllegalStateException
            at org.apache.coyote.Response.reset(Response.java:297)
            at org.apache.catalina.connector.Response.reset(Response.java:653)
            at org.apache.catalina.connector.Response.reset(Response.java:920)
            at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:357)
            at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:213)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
            at java.lang.Thread.run(Thread.java:595)

    Im Anwendungslog fällt auf, dass sich zuvor immer eine NullPointerException im JSP Code ereignet.

    Code:
    2009-05-15 08:56:41,868 [http-8080-Processor25] ERROR [jsp]:? Servlet.service() for servlet jsp threw exception
    java.lang.NullPointerException
            at org.apache.jsp.xxx.jspName_jsp._jspService(jspName_jsp.java:173)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
            at java.lang.Thread.run(Thread.java:595)
    Kann tatsächlich die NullPointerException Ursache für das Sichaufhängen des Tomcat sein?



    Hier noch einige Umgebungsinfos:
    Code:
    bash 3.00.16 {logs}> java -version
    java version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
    Java HotSpot(TM) Server VM (build 1.5.0_06-b05, mixed mode)
    b
    Code:
    bash 3.00.16 {logs}> uname -a
    SunOS xxxHostname 5.10 Generic_125100-10 sun4us sparc FJSV,GPUZC-M
    b
    Wie kann man sich dem Problem nähern?

    Viele Grüße,
    NetRob

  • #2
    Wie kann man sich dem Problem nähern?
    - sich die JSP-Seite ansehen, wo die NPE auftreten könnte
    - sich in der compilierten JSP die Zeile 173 ansehen
    Christian

    Comment


    • #3
      in der betroffenen Zeile steht nur ein Kommentar, zumindest bei der Java-Klasse die mein lokaler Entwicklungstomcat erzeugt.

      Ich werde mal den JSP-Code dekompilieren, der im Tomcat auf der SUN generiert wurde, vielleicht hilft das weiter.

      Comment


      • #4
        Ich konnte nun die NullPointerException beheben.
        Was ich jedoch gern wüsste, ist warum sich der komplette Tomcat aufhängt, wenn in der JSP eine NullPointerException auftritt. Dies wird doch normalerweise abgefangen und irgendwie behandelt?

        Comment


        • #5
          Ev. ist eine error-page global (im web.xml) definiert und bei deren Aufruf kracht es gleich wieder (warum auch immer). Dann will er deswegen wieder auf die error page und der Tomcat ist mit der Endlosrekursion beschäftigt Nur eine Vermutung anhand Deiner stacktraces.

          Comment


          • #6
            1000 Dank, Alwin!

            Deine Vermutung hat voll ins Schwarze getroffen.

            Es gab eine Endlosschleife in der Exception.jsp, da wär ich so schnell nicht drauf gekommen.

            Hipp Hipp Hurra, Problem gelöst! :-)

            Danke an alle Helfer!

            Comment

            Working...
            X