1 Reply Latest reply: Sep 14, 2012 8:53 AM by 962209 RSS

    EmptyStackException in Weblogic 10.3

    user9977520
      Hi there,

      I have a war file that I deploy on a Weblogic 10.3 without any errors.
      When I call the first page I get an EmptyStackException.

      The exception looks like this:
      java.util.EmptyStackException
      at java.util.Stack.peek(Stack.java:85)
      at java.util.Stack.pop(Stack.java:67)
      at weblogic.servlet.jsp.PageContextImpl.popBody(PageContextImpl.java:446)
      at jsp_servlet._foo.__bar._jspService(__bar.java:1357)
      at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
      at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:416)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:327)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
      at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:529)
      at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253)
      at foo.bar.MyServlet.doGet(MyServlet.java:75)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
      at weblogic.servlet.ServletServlet.service(ServletServlet.java:47)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
      at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:529)
      at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253)
      at de.justiz.sijus.Ablaufsteuerung.SwjSijus.doGet(SwjSijus.java:132)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3732)
      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
      at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
      at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
      at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

      The problem is that the causing excpetion isn't logged anywhere. I tried to find a solution to this problem and searched these forums for an answer. I found out that in earlier releases there was a problem with overwriting the JspWriter out, which happens in our JSPs also.

      I took a look in the generated java class file from the JSP and saw the corresponding catch block:
      catch (Throwable __ee) {
      if (!(__ee instanceof SkipPageException)) {
      while ((out != null) && (out != _originalOut)) out = pageContext.popBody();
      releaseTags(pageContext, activeTag);
      pageContext.handlePageException(__ee);
      }
      }

      The pageContext.popBody() throws a RuntimeException and therefore the Throwable __ee isn't logged anywhere. Is this supposed to be like that? Does this happen in newer versions of Weblogic Application Server also? How can I find out what caused the page to go into this catch block?

      Thanks in advance