Dejan Bosanac created AMQ-4994:
----------------------------------
Summary: Web Console - java.lang.OutOfMemoryError: Java heap space
- while browsing deep queues
Key: AMQ-4994
URL: https://issues.apache.org/jira/browse/AMQ-4994
Project: ActiveMQ
Issue Type: Bug
Affects Versions: 5.9.0
Reporter: Dejan Bosanac
Priority: Blocker
When browsing a deep queue with large number of messages, broker throws
{code}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){code}
when trying to browse that queue.
To reproduce it:
1. Start a broker with default configuration
2. Send 200k messages with
{code}ant producer -Dmax=200000 -Ddurable=true -Dsubject=TEST{code}
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.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)