Announcement Announcement Module
No announcement yet.
Jasper Reports " report Filling Thread Interruption &qu Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Jasper Reports " report Filling Thread Interruption &qu

    I have a problem relate to jasper report, i have tried some solutions but i 'm still not solve this problem.
    It's a web application, i used Jboss 3.2.3, tomcat 5.0 integrate in jboss. In EJBs, first i call to DAO layer to get datasource, parameters.
    then i call to jasper report function: JasperFillManager.fillReportToStream(jasperreport, outputstream, parameters, datasource),
    If the data source is small, the method call is ok. But with huge datasource, i am seeing this problem of Thread Interruption.
    "The report filling thread was interrupted"!!!
    I just do not understand why the Thread was interrupted and by whom…” is it by the container “ . To give you more context, the jasper code was invoked within a stateless session bean and that bean has transaction timout set to 600. Does the Container managed transaction timeout has anything to do with this Thread Interruption ? . My initial guess is not...maybe i might be wrong.
    I open source code code of jasper report, i I that the thread generate report was interrupted at statement:
    "if (Thread.currentThread().isInterrupted())
    throw new JRException("Current thread interrupted.");
    Have you had experience with this problem? Could you share with me? Why we have to check the thread by statements: "Thread.currentThread().isInterrupted()"?

    Pls see the printstackstrace for details.

    19:58:20,311 ERROR [STDERR] dori.jasper.engine.JRException: The report filling t
    hread was interrupted.
    19:58:20,311 ERROR [STDERR] at dori.jasper.engine.fill.JRFiller.fillReport(J
    19:58:20,311 ERROR [STDERR] at dori.jasper.engine.JasperFillManager.fillRepo
    19:58:20,311 ERROR [STDERR] at dori.jasper.engine.JasperFillManager.fillRepo
    19:58:20,311 ERROR [STDERR] at dori.jasper.engine.JasperFillManager.fillRepo
    19:58:20,311 ERROR [STDERR] at com.dlv.inmpp.system.ReportManager.generateRe
    19:58:20,311 ERROR [STDERR] at
    19:58:20,311 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(
    Native Method)
    19:58:20,311 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(N
    19:58:20,311 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invo
    19:58:20,311 ERROR [STDERR] at java.lang.reflect.Method.invoke(
    19:58:20,311 ERROR [STDERR] at org.jboss.ejb.StatelessSessionContainer$Conta

  • #2
    Is this timeout value (600) you mention actually being exceeded?

    It's possible I guess the container is interrupting the thread after the timeout is exceeded...


    • #3
      Actually, i was able to fix the problem. In JBoss 3.2.x , by default the containers goes and interrupts all the the report filling thread got interrupted whenever the transaction timedout.

      thanks all for the replies