润乾报表导致 tomcat 线程死锁

 

Found one Java-level deadlock:

“http-80-25”:
waiting to lock monitor 0x000000002a15bcd8 (object 0x0000000585b0a9e8, a com.runqian.report4.cache.lIlIIIIlIIIIlIlI),
which is held by “Thread-3”
“Thread-3”:
waiting to lock monitor 0x0000000029a5fcc8 (object 0x0000000588bb22d0, a com.runqian.report4.cache.lllIlIllllIllIll),
which is held by “http-80-25”

Java stack information for the threads listed above:

“http-80-25”:
at com.runqian.report4.cache.lIlIIIIlIIIIlIlI.getReport(Unknown Source:123)
- waiting to lock <0x0000000585b0a9e8> (a com.runqian.report4.cache.lIlIIIIlIIIIlIlI)
at com.runqian.report4.cache.lllIlIllllIllIll.getPageBuilder(Unknown Source:22)
- locked <0x0000000588bb22d0> (a com.runqian.report4.cache.lllIlIllllIllIll)
at com.runqian.report4.cache.lllIlIllllIllIll.getPageCount(Unknown Source:59)
at com.runqian.report4.tag.HtmlTag.doStartTag(Unknown Source:381)
at org.apache.jsp.reportJsp.reportMain_jsp.jspService(reportMain_jsp.java:203)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:745)
“Thread-3”:
at com.runqian.report4.cache.lllIlIllllIllIll.
$2(Unknown Source:81)
- waiting to lock <0x0000000588bb22d0> (a com.runqian.report4.cache.lllIlIllllIllIll)
at com.runqian.report4.cache.lIlIIIIlIIIIlIlI.$2(Unknown Source:240)
- locked <0x0000000585b0a9e8> (a com.runqian.report4.cache.lIlIIIIlIIIIlIlI)
at com.runqian.report4.cache.ReportEntry.release(Unknown Source:309)
- locked <0x00000005854c9dd0> (a com.runqian.report4.cache.ReportEntry)
at com.runqian.report4.cache.CacheManager.deleteReportEntry(Unknown Source:329)
at com.runqian.report4.cache.CacheMonitor.
$1(Unknown Source:64)
at com.runqian.report4.cache.CacheMonitor.run(Unknown Source:39)

Found 1 deadlock.