You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Romain Manni-Bucau (JIRA)" <ji...@apache.org> on 2012/10/09 14:14:03 UTC

[jira] [Closed] (TOMEE-445) @RequestScoped @Stateful EJB beans are not destroyed after request completes

     [ https://issues.apache.org/jira/browse/TOMEE-445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Romain Manni-Bucau closed TOMEE-445.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5.1
    
> @RequestScoped @Stateful EJB beans are not destroyed after request completes
> ----------------------------------------------------------------------------
>
>                 Key: TOMEE-445
>                 URL: https://issues.apache.org/jira/browse/TOMEE-445
>             Project: TomEE
>          Issue Type: Bug
>    Affects Versions: 1.5.0
>         Environment: Windows 7 x64; Oracle JDK 1.7.0_07; tomee-web-profile-1.5.0.zip
>            Reporter: Donatas Ciuksys
>             Fix For: 1.5.1
>
>
> 1. Create simple JSF+CDI+EJB application consisting of one JSF page and one EJB component:
> index.xhtml:
> ...
>     <h:body>
>         Current real date is: #{dateBean.currentDate()}
>     </h:body>
> </html>
> EJB: DateBean.java:
> @Named
> @RequestScoped
> @Stateful
> public class DateBean {
>     
>     @PostConstruct
>     private void init() {
>         System.out.println("INIT: " + this);
>     }
>     
>     @PreDestroy
>     private void die() {
>         System.out.println("DIE: " + this);
>     }
>     public String currentDate() {
>         System.out.println("Method was called...");
>         return "" + new Date();
>     }
> }
> 2. Run the application. EJB method works OK, the current date is getting printed. Refresh browser window several times, Tomee log file will print this:
> INIT: beans.DateBean@1ac52c5
> Method was called...
> INIT: beans.DateBean@792217
> Method was called...
> INIT: beans.DateBean@1438814
> Method was called...
> Method annotated with @PreDestroy never gets called.
> 3. Remove annotation @Stateful (thus EJB bean becomes simple CDI bean), try again.
> This time each INIT log message is followed by DIE message.
> Conclusion: @RequestScoped + @PreDestroy is working on CDI beans, but not on EJB beans.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira