Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-4994

Web Console - java.lang.OutOfMemoryError: Java heap space - while browsing deep queues

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 5.9.0
    • 5.9.1, 5.10.0
    • Web Console
    • None

    Description

      When browsing a deep queue with large number of messages, broker throws

      java.lang.OutOfMemoryError: Java heap space
      	at java.util.Arrays.copyOf(Arrays.java:2367)
      	at java.io.CharArrayWriter.write(CharArrayWriter.java:105)
      	at java.io.PrintWriter.write(PrintWriter.java:426)
      	at com.opensymphony.module.sitemesh.filter.RoutablePrintWriter.write(RoutablePrintWriter.java:144)
      	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:181)
      	at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:412)
      	at org.apache.taglibs.standard.tag.common.core.OutSupport.writeEscapedXml(OutSupport.java:239)
      	at org.apache.taglibs.standard.tag.common.core.OutSupport.out(OutSupport.java:208)
      	at org.apache.taglibs.standard.tag.common.core.OutSupport.doStartTag(OutSupport.java:128)
      	at org.apache.jsp.browse_jsp._jspx_meth_c_out_6(org.apache.jsp.browse_jsp:323)
      	at org.apache.jsp.browse_jsp.access$8(org.apache.jsp.browse_jsp:314)
      	at org.apache.jsp.browse_jsp$browse_jspHelper.invoke0(org.apache.jsp.browse_jsp:426)
      	at org.apache.jsp.browse_jsp$browse_jspHelper.invoke(org.apache.jsp.browse_jsp:450)
      	at org.apache.jsp.tag.web.jms.forEachMessage_tag.doTag(org.apache.jsp.tag.web.jms.forEachMessage_tag:89)
      	at org.apache.jsp.browse_jsp._jspx_meth_jms_forEachMessage_0(org.apache.jsp.browse_jsp:170)
      	at org.apache.jsp.browse_jsp._jspService(org.apache.jsp.browse_jsp:100)
      	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
      	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
      	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
      	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)
      	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
      	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
      	at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:45)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
      	at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:102)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
      	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)

      when trying to browse that queue.

      To reproduce it:

      1. Start a broker with default configuration

      2. Send 200k messages with

      ant producer -Dmax=200000 -Ddurable=true -Dsubject=TEST

      3. Try to browse the queue

      http://localhost:8161/admin/browse.jsp?JMSDestination=TEST

      The proper solution to this problem is to implement proper pagination while browsing the messages, so users can browse through all messages showing 100 msgs (or so) at the time and not using all the available memory.

      Attachments

        1. AMQ-4994.patch
          22 kB
          Daniel Kulp

        Activity

          People

            hadrian Hadrian Zbarcea
            dejanb Dejan Bosanac
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: