Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Gerhard Petracek
@howard:
that's one of the issues i mentioned during the discussion for MYFACES-3797
and i was going to test it tomorrow.
- thx for testing it and starting this thread.

regards,
gerhard

http://www.irian.at

Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2013/10/18 Leonardo Uribe lu4...@gmail.com

 Hi

 You can check here:

 https://builds.apache.org/view/M-R/view/MyFaces/job/myfaces-current22-1/

 As soon as the job (#1164) is done, you can take the jars from that
 location (which should be the same).

 regards,

 Leonardo Uribe


 2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com

  Okay, that is great. I'm waiting for the following folders to be updated
  with the latest version:
 
  1.
 
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/
 
  2.
 
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-impl/2.2.0-SNAPSHOT/
 
 
 
 
  On Thu, Oct 17, 2013 at 10:47 PM, Leonardo Uribe lu4...@gmail.com
 wrote:
 
   Hi
  
   I have found the bug. The problem was caused on a refactor, there was
 an
   old code that skip state saving when view map is empty, but now since
  there
   is a proxy for that implementing StateHolder, the map can be empty but
 it
   holds the view scope key. Since with CDI the beans are stored
 internally,
   the map keeps empty but the scope is not, and if the view scope key is
  lost
   the bean is recreated every time. But the beans are still in session,
 and
   with the session timeout bug the final result is @PreDestroy is not
  called.
  
   Please try again with the latest code, it should work. And please lets
 us
   know what happened, if it is working or not.
  
   regards,
  
   Leonardo Uribe
  
  
  
   2013/10/17 Leonardo Uribe lu4...@gmail.com
  
Hi
   
I have committed a fix for the problem with the timeout. But I'm
  curious
about this problem, because I tested this scope and specifically the
@PreDestroy stuff. It should work. But maybe there is a bug
  somewhere
   
regards,
   
Leonardo Uribe
   
   
2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
   
responses inline below,
   
   
   
On Thu, Oct 17, 2013 at 9:32 PM, Leonardo Uribe lu4...@gmail.com
   wrote:
   

 public void onSessionDestroyed()
 {
 // In CDI case, the best way to deal with this is use a
  method
 // with @PreDestroy annotation on a session scope bean
 // ( ViewScopeBeanHolder.destroyBeans() ). There is no
 need
 // to do anything else in this location, but it is advised
 // in CDI the beans are destroyed at the end of the
 request,
 // not when invalidateSession() is called.
 FacesContext facesContext =
  FacesContext.getCurrentInstance();
 if (facesContext != null)
 {

 I suppose what's going on there is in the context the session
invalidation
 is done, FacesContext is null and @PreDestroy is ignored.

   
I can agree with that.
   
   

 To be clear two questions:

 1. Is manual session expiration working ? I suppose yes.

   
hmmm does manual session expiration == HttpSession.invalidate()?
   
When user click Logout button, my app execute/triggers
HttpSession.invalidate(), and @PreDestroy (on CDI @ViewScoped bean)
 is
   not
executed.
   
   
   
 2. Is session invalidation by a timeout working ? I suppose no.

   
correct, I just verified that in my app. see below.
   
- navigated to page that reference CDI @ViewScoped bean,
  @PostConstruct
(below) executed
   
Oct 17, 2013 9:45:18 PM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@a9faef9
   
changed web.xml, session timeout = 1 minute, so tomee ended session
via/after timeout, and @PreDestroy on CDI @SessionScoped (below)
   executed,
   
Oct 17, 2013 9:45:53 PM jsf.users.pf_UsersController sessionTimeout
INFO: administrator session ended at 10/17/2013 09:45 PM
   
but @PreDestroy on CDI @ViewScoped bean was not executed
   
   
I will try to provide an example to test.
   
   
   
  
 



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
On Thu, Oct 17, 2013 at 11:52 PM, Leonardo Uribe lu4...@gmail.com wrote:


 You can check here:

 https://builds.apache.org/view/M-R/view/MyFaces/job/myfaces-current22-1/

 As soon as the job (#1164) is done, you can take the jars from that
 location (which should be the same).


wish i had good news/report, but the issue seems to still exist. please see
below.

I took latest myfaces 2.2.0 JARs from repository, dropped in tomee/lib,
started tomee (without dropping a new WAR, since WAR has not changed since
my last test).

tomee started and log included the following:

Oct 18, 2013 10:56:10 AM org.apache.myfaces.config.LogMetaInfUtils
logArtifact
INFO: Artifact 'myfaces-api' was found in version
'2.2.0-20131018.053919-2508' from path
'file:/C:/apache-tomee-plus-1.6.0-SNAPSHOT/lib/myfaces-api-2.2.0-20131018.053919-2508.jar'

Oct 18, 2013 10:56:10 AM org.apache.myfaces.config.LogMetaInfUtils
logArtifact
INFO: Artifact 'myfaces-impl' was found in version
'2.2.0-20131018.054743-2505' from path
'file:/C:/apache-tomee-plus-1.6.0-SNAPSHOT/lib/myfaces-impl-2.2.0-20131018.054743-2505.jar'

Oct 18, 2013 10:56:11 AM org.apache.myfaces.util.ExternalSpecifications
isCDIAvailable
INFO: MyFaces CDI support enabled

Oct 18, 2013 10:56:11 AM
org.apache.myfaces.spi.impl.DefaultInjectionProviderFactory
getInjectionProvider
INFO: Using InjectionProvider
org.apache.myfaces.spi.impl.Tomcat7AnnotationInjectionProvider


Test 1: login user, navigate to page which references CDI @ViewScoped bean,
F5/refresh browser to generate another CDI @ViewScoped bean, and logout
user, which invokes HttpSession.invalidate() via CDI @SessionScoped user
bean; @PreDestroy of CDI @ViewScoped bean was not executed. :(

Oct 18, 2013 10:56:31 AM jsf.users.pf_UsersController loginUser
INFO: administrator logged in at 10/18/2013 10:56 AM

Oct 18, 2013 10:56:49 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@6612072e

Oct 18, 2013 10:56:53 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@5421887b

Oct 18, 2013 10:57:03 AM jsf.users.pf_UsersController logout
INFO: administrator logged out at 10/18/2013 10:57 AM


Test 2: same as test 1, but session expire via 1 minute timeout, same
results (@PreDestroy of CDI @viewScoped bean was not executed)

Oct 18, 2013 10:57:50 AM jsf.users.pf_UsersController loginUser
INFO: administrator logged in at 10/18/2013 10:57 AM

Oct 18, 2013 10:58:01 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@432bb463

Oct 18, 2013 10:58:08 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@7049be5a

Oct 18, 2013 10:59:10 AM jsf.users.pf_UsersController sessionTimeout
INFO: administrator session ended at 10/18/2013 10:59 AM


I know I need to isolate/develop a test case, but not much bandwidth right
now; will, hopefully, develop a test case, ASAP.

just wanted to report my test results.


Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Gerhard, you're welcome. since i don't have bandwidth (right now),
maybe/hopefully, you can develop test case(s) per what we're
discussing/testing/reporting here...if you have bandwidth to do so. :)


On Fri, Oct 18, 2013 at 5:14 AM, Gerhard Petracek 
gerhard.petra...@gmail.com wrote:

 @howard:
 that's one of the issues i mentioned during the discussion for MYFACES-3797
 and i was going to test it tomorrow.
 - thx for testing it and starting this thread.

 regards,
 gerhard

 http://www.irian.at

 Your JSF/JavaEE powerhouse -
 JavaEE Consulting, Development and
 Courses in English and German

 Professional Support for Apache MyFaces



 2013/10/18 Leonardo Uribe lu4...@gmail.com

  Hi
 
  You can check here:
 
  https://builds.apache.org/view/M-R/view/MyFaces/job/myfaces-current22-1/
 
  As soon as the job (#1164) is done, you can take the jars from that
  location (which should be the same).
 
  regards,
 
  Leonardo Uribe
 
 
  2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
 
   Okay, that is great. I'm waiting for the following folders to be
 updated
   with the latest version:
  
   1.
  
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/
  
   2.
  
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-impl/2.2.0-SNAPSHOT/
  
  
  
  
   On Thu, Oct 17, 2013 at 10:47 PM, Leonardo Uribe lu4...@gmail.com
  wrote:
  
Hi
   
I have found the bug. The problem was caused on a refactor, there was
  an
old code that skip state saving when view map is empty, but now since
   there
is a proxy for that implementing StateHolder, the map can be empty
 but
  it
holds the view scope key. Since with CDI the beans are stored
  internally,
the map keeps empty but the scope is not, and if the view scope key
 is
   lost
the bean is recreated every time. But the beans are still in session,
  and
with the session timeout bug the final result is @PreDestroy is not
   called.
   
Please try again with the latest code, it should work. And please
 lets
  us
know what happened, if it is working or not.
   
regards,
   
Leonardo Uribe
   
   
   
2013/10/17 Leonardo Uribe lu4...@gmail.com
   
 Hi

 I have committed a fix for the problem with the timeout. But I'm
   curious
 about this problem, because I tested this scope and specifically
 the
 @PreDestroy stuff. It should work. But maybe there is a bug
   somewhere

 regards,

 Leonardo Uribe


 2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com

 responses inline below,



 On Thu, Oct 17, 2013 at 9:32 PM, Leonardo Uribe lu4...@gmail.com
 
wrote:

 
  public void onSessionDestroyed()
  {
  // In CDI case, the best way to deal with this is use a
   method
  // with @PreDestroy annotation on a session scope bean
  // ( ViewScopeBeanHolder.destroyBeans() ). There is no
  need
  // to do anything else in this location, but it is
 advised
  // in CDI the beans are destroyed at the end of the
  request,
  // not when invalidateSession() is called.
  FacesContext facesContext =
   FacesContext.getCurrentInstance();
  if (facesContext != null)
  {
 
  I suppose what's going on there is in the context the session
 invalidation
  is done, FacesContext is null and @PreDestroy is ignored.
 

 I can agree with that.


 
  To be clear two questions:
 
  1. Is manual session expiration working ? I suppose yes.
 

 hmmm does manual session expiration == HttpSession.invalidate()?

 When user click Logout button, my app execute/triggers
 HttpSession.invalidate(), and @PreDestroy (on CDI @ViewScoped
 bean)
  is
not
 executed.



  2. Is session invalidation by a timeout working ? I suppose no.
 

 correct, I just verified that in my app. see below.

 - navigated to page that reference CDI @ViewScoped bean,
   @PostConstruct
 (below) executed

 Oct 17, 2013 9:45:18 PM jsf.orders.OrderDocumentBean init
 INFO: jsf.orders.OrderDocumentBean@a9faef9

 changed web.xml, session timeout = 1 minute, so tomee ended
 session
 via/after timeout, and @PreDestroy on CDI @SessionScoped (below)
executed,

 Oct 17, 2013 9:45:53 PM jsf.users.pf_UsersController
 sessionTimeout
 INFO: administrator session ended at 10/17/2013 09:45 PM

 but @PreDestroy on CDI @ViewScoped bean was not executed


 I will try to provide an example to test.



   
  
 



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
smithh032...@gmail.com wrote:

 OmniFaces CDI @ViewScoped[1] executes @PreDestroy on session.invalidate()
 and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
 implementation is not doing the same.


I am not trying to do any type of cross-forum posting. My goal is to
communicate/share my actual/expected test results.

In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 + OmniFaces
1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session invalidation
'and' expiration. Some minutes ago, I did a test against production app,
and just wanted to show you my 'actual test results' of production (which)
= 'expected test results' of MyFaces 2.2 CDI @ViewScoped.

In production, session timeout = 15 minutes, so I did a test against
production server, and did the 'same' test as Test 2 (session expiration)
in my previous post that included my latest test and test results of
MyFaces 2.2 CDI @ViewScoped.


Test: login user, navigate to page which references CDI @ViewScoped bean,
F5/refresh browser to generate another CDI @ViewScoped bean, and let
session expire via (15-minute) session timeout; @PreDestroy of (OmniFaces)
CDI @ViewScoped bean executed. see below.

Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
INFO: administrator logged in at 10/18/2013 11:20 AM

Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@650707eb

Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@132f168a

-- session expired --

Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@132f168a

Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@650707eb

Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController sessionTimeout
INFO: administrator session ended at 10/18/2013 11:35 AM


Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Leonardo Uribe
Hi

I was able to reproduce the problem. I have been testing this issue against
jetty / weld, and this issue comes when using tomcat / owb configuration.
It seems when the session is destroyed, CDIManagedBeanHandlerImpl try to
get a reference of ViewScopeBeanHolder and FlowScopeBeanHolder, but in that
point of time the injection does not work as you can expect and
ViewScopeBeanHolder is recreated.

This issue is becoming difficult ...

regards,

Leonardo Uribe



2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

 On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
 smithh032...@gmail.com wrote:

  OmniFaces CDI @ViewScoped[1] executes @PreDestroy on session.invalidate()
  and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
  implementation is not doing the same.


 I am not trying to do any type of cross-forum posting. My goal is to
 communicate/share my actual/expected test results.

 In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 + OmniFaces
 1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session invalidation
 'and' expiration. Some minutes ago, I did a test against production app,
 and just wanted to show you my 'actual test results' of production (which)
 = 'expected test results' of MyFaces 2.2 CDI @ViewScoped.

 In production, session timeout = 15 minutes, so I did a test against
 production server, and did the 'same' test as Test 2 (session expiration)
 in my previous post that included my latest test and test results of
 MyFaces 2.2 CDI @ViewScoped.


 Test: login user, navigate to page which references CDI @ViewScoped bean,
 F5/refresh browser to generate another CDI @ViewScoped bean, and let
 session expire via (15-minute) session timeout; @PreDestroy of (OmniFaces)
 CDI @ViewScoped bean executed. see below.

 Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
 INFO: administrator logged in at 10/18/2013 11:20 AM

 Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
 INFO: jsf.orders.OrderDocumentBean@650707eb

 Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
 INFO: jsf.orders.OrderDocumentBean@132f168a

 -- session expired --

 Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
 INFO: jsf.orders.OrderDocumentBean@132f168a

 Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
 INFO: jsf.orders.OrderDocumentBean@650707eb

 Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController sessionTimeout
 INFO: administrator session ended at 10/18/2013 11:35 AM



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Leonardo Uribe
Hi

I have committed a mixed solution between @PreDestroy annotation and
ManagedBeanDestroyerListener. The idea is the first one in destroy the
beans wins and the second one is just ignored. I have tested it with both
configurations, so I hope it will work in your application.

Let us know what happen and thanks Howard for report this. This is the kind
of help that is very useful for the project in general.

regards,

Leonardo Uribe


2013/10/18 Leonardo Uribe lu4...@gmail.com

 Hi

 I was able to reproduce the problem. I have been testing this issue
 against jetty / weld, and this issue comes when using tomcat / owb
 configuration. It seems when the session is destroyed,
 CDIManagedBeanHandlerImpl try to get a reference of ViewScopeBeanHolder and
 FlowScopeBeanHolder, but in that point of time the injection does not work
 as you can expect and ViewScopeBeanHolder is recreated.

 This issue is becoming difficult ...

 regards,

 Leonardo Uribe



 2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

 On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
 smithh032...@gmail.com wrote:

  OmniFaces CDI @ViewScoped[1] executes @PreDestroy on
 session.invalidate()
  and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
  implementation is not doing the same.


 I am not trying to do any type of cross-forum posting. My goal is to
 communicate/share my actual/expected test results.

 In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 + OmniFaces
 1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session invalidation
 'and' expiration. Some minutes ago, I did a test against production app,
 and just wanted to show you my 'actual test results' of production (which)
 = 'expected test results' of MyFaces 2.2 CDI @ViewScoped.

 In production, session timeout = 15 minutes, so I did a test against
 production server, and did the 'same' test as Test 2 (session expiration)
 in my previous post that included my latest test and test results of
 MyFaces 2.2 CDI @ViewScoped.


 Test: login user, navigate to page which references CDI @ViewScoped bean,
 F5/refresh browser to generate another CDI @ViewScoped bean, and let
 session expire via (15-minute) session timeout; @PreDestroy of (OmniFaces)
 CDI @ViewScoped bean executed. see below.

 Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
 INFO: administrator logged in at 10/18/2013 11:20 AM

 Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
 INFO: jsf.orders.OrderDocumentBean@650707eb

 Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
 INFO: jsf.orders.OrderDocumentBean@132f168a

 -- session expired --

 Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
 INFO: jsf.orders.OrderDocumentBean@132f168a

 Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
 INFO: jsf.orders.OrderDocumentBean@650707eb

 Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController sessionTimeout
 INFO: administrator session ended at 10/18/2013 11:35 AM





Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Leonardo, that's great to hear and you're welcome. i'm a very happy MyFaces
user and definitely want to see MyFaces 2.2.x working as
RI/expected/intended/designed/spec'ified. :)

As before, I can wait for repository to be updated, can download, and test,
and can report, accordingly/afterwards.

thanks,
Howard



On Fri, Oct 18, 2013 at 3:05 PM, Leonardo Uribe lu4...@gmail.com wrote:

 Hi

 I have committed a mixed solution between @PreDestroy annotation and
 ManagedBeanDestroyerListener. The idea is the first one in destroy the
 beans wins and the second one is just ignored. I have tested it with both
 configurations, so I hope it will work in your application.

 Let us know what happen and thanks Howard for report this. This is the kind
 of help that is very useful for the project in general.

 regards,

 Leonardo Uribe


 2013/10/18 Leonardo Uribe lu4...@gmail.com

  Hi
 
  I was able to reproduce the problem. I have been testing this issue
  against jetty / weld, and this issue comes when using tomcat / owb
  configuration. It seems when the session is destroyed,
  CDIManagedBeanHandlerImpl try to get a reference of ViewScopeBeanHolder
 and
  FlowScopeBeanHolder, but in that point of time the injection does not
 work
  as you can expect and ViewScopeBeanHolder is recreated.
 
  This issue is becoming difficult ...
 
  regards,
 
  Leonardo Uribe
 
 
 
  2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com
 
  On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
  smithh032...@gmail.com wrote:
 
   OmniFaces CDI @ViewScoped[1] executes @PreDestroy on
  session.invalidate()
   and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
   implementation is not doing the same.
 
 
  I am not trying to do any type of cross-forum posting. My goal is to
  communicate/share my actual/expected test results.
 
  In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 + OmniFaces
  1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session
 invalidation
  'and' expiration. Some minutes ago, I did a test against production app,
  and just wanted to show you my 'actual test results' of production
 (which)
  = 'expected test results' of MyFaces 2.2 CDI @ViewScoped.
 
  In production, session timeout = 15 minutes, so I did a test against
  production server, and did the 'same' test as Test 2 (session
 expiration)
  in my previous post that included my latest test and test results of
  MyFaces 2.2 CDI @ViewScoped.
 
 
  Test: login user, navigate to page which references CDI @ViewScoped
 bean,
  F5/refresh browser to generate another CDI @ViewScoped bean, and let
  session expire via (15-minute) session timeout; @PreDestroy of
 (OmniFaces)
  CDI @ViewScoped bean executed. see below.
 
  Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
  INFO: administrator logged in at 10/18/2013 11:20 AM
 
  Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
  INFO: jsf.orders.OrderDocumentBean@650707eb
 
  Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
  INFO: jsf.orders.OrderDocumentBean@132f168a
 
  -- session expired --
 
  Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
  INFO: jsf.orders.OrderDocumentBean@132f168a
 
  Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
  INFO: jsf.orders.OrderDocumentBean@650707eb
 
  Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController sessionTimeout
  INFO: administrator session ended at 10/18/2013 11:35 AM
 
 
 



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Gerhard Petracek
hi howard,

i just planned a short (re-)test for starting a discussion like this one.

regards,
gerhard

http://www.irian.at

Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces


2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

 Gerhard, you're welcome. since i don't have bandwidth (right now),
 maybe/hopefully, you can develop test case(s) per what we're
 discussing/testing/reporting here...if you have bandwidth to do so. :)


 On Fri, Oct 18, 2013 at 5:14 AM, Gerhard Petracek 
 gerhard.petra...@gmail.com wrote:

  @howard:
  that's one of the issues i mentioned during the discussion for
 MYFACES-3797
  and i was going to test it tomorrow.
  - thx for testing it and starting this thread.
 
  regards,
  gerhard
 
  http://www.irian.at
 
  Your JSF/JavaEE powerhouse -
  JavaEE Consulting, Development and
  Courses in English and German
 
  Professional Support for Apache MyFaces
 
 
 
  2013/10/18 Leonardo Uribe lu4...@gmail.com
 
   Hi
  
   You can check here:
  
  
 https://builds.apache.org/view/M-R/view/MyFaces/job/myfaces-current22-1/
  
   As soon as the job (#1164) is done, you can take the jars from that
   location (which should be the same).
  
   regards,
  
   Leonardo Uribe
  
  
   2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
  
Okay, that is great. I'm waiting for the following folders to be
  updated
with the latest version:
   
1.
   
   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/
   
2.
   
   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-impl/2.2.0-SNAPSHOT/
   
   
   
   
On Thu, Oct 17, 2013 at 10:47 PM, Leonardo Uribe lu4...@gmail.com
   wrote:
   
 Hi

 I have found the bug. The problem was caused on a refactor, there
 was
   an
 old code that skip state saving when view map is empty, but now
 since
there
 is a proxy for that implementing StateHolder, the map can be empty
  but
   it
 holds the view scope key. Since with CDI the beans are stored
   internally,
 the map keeps empty but the scope is not, and if the view scope key
  is
lost
 the bean is recreated every time. But the beans are still in
 session,
   and
 with the session timeout bug the final result is @PreDestroy is not
called.

 Please try again with the latest code, it should work. And please
  lets
   us
 know what happened, if it is working or not.

 regards,

 Leonardo Uribe



 2013/10/17 Leonardo Uribe lu4...@gmail.com

  Hi
 
  I have committed a fix for the problem with the timeout. But I'm
curious
  about this problem, because I tested this scope and specifically
  the
  @PreDestroy stuff. It should work. But maybe there is a bug
somewhere
 
  regards,
 
  Leonardo Uribe
 
 
  2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
 
  responses inline below,
 
 
 
  On Thu, Oct 17, 2013 at 9:32 PM, Leonardo Uribe 
 lu4...@gmail.com
  
 wrote:
 
  
   public void onSessionDestroyed()
   {
   // In CDI case, the best way to deal with this is use
 a
method
   // with @PreDestroy annotation on a session scope bean
   // ( ViewScopeBeanHolder.destroyBeans() ). There is no
   need
   // to do anything else in this location, but it is
  advised
   // in CDI the beans are destroyed at the end of the
   request,
   // not when invalidateSession() is called.
   FacesContext facesContext =
FacesContext.getCurrentInstance();
   if (facesContext != null)
   {
  
   I suppose what's going on there is in the context the session
  invalidation
   is done, FacesContext is null and @PreDestroy is ignored.
  
 
  I can agree with that.
 
 
  
   To be clear two questions:
  
   1. Is manual session expiration working ? I suppose yes.
  
 
  hmmm does manual session expiration == HttpSession.invalidate()?
 
  When user click Logout button, my app execute/triggers
  HttpSession.invalidate(), and @PreDestroy (on CDI @ViewScoped
  bean)
   is
 not
  executed.
 
 
 
   2. Is session invalidation by a timeout working ? I suppose
 no.
  
 
  correct, I just verified that in my app. see below.
 
  - navigated to page that reference CDI @ViewScoped bean,
@PostConstruct
  (below) executed
 
  Oct 17, 2013 9:45:18 PM jsf.orders.OrderDocumentBean init
  INFO: jsf.orders.OrderDocumentBean@a9faef9
 
  changed web.xml, session timeout = 1 minute, so tomee ended
  session
  via/after timeout, and @PreDestroy on CDI @SessionScoped 

Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Cool! If your test works against Leonardo's latest changes/fixes, please
post/share your test results (and test steps). Thanks!


On Fri, Oct 18, 2013 at 3:45 PM, Gerhard Petracek 
gerhard.petra...@gmail.com wrote:

 hi howard,

 i just planned a short (re-)test for starting a discussion like this one.

 regards,
 gerhard

 http://www.irian.at

 Your JSF/JavaEE powerhouse -
 JavaEE Consulting, Development and
 Courses in English and German

 Professional Support for Apache MyFaces


 2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

  Gerhard, you're welcome. since i don't have bandwidth (right now),
  maybe/hopefully, you can develop test case(s) per what we're
  discussing/testing/reporting here...if you have bandwidth to do so. :)
 
 
  On Fri, Oct 18, 2013 at 5:14 AM, Gerhard Petracek 
  gerhard.petra...@gmail.com wrote:
 
   @howard:
   that's one of the issues i mentioned during the discussion for
  MYFACES-3797
   and i was going to test it tomorrow.
   - thx for testing it and starting this thread.
  
   regards,
   gerhard
  
   http://www.irian.at
  
   Your JSF/JavaEE powerhouse -
   JavaEE Consulting, Development and
   Courses in English and German
  
   Professional Support for Apache MyFaces
  
  
  
   2013/10/18 Leonardo Uribe lu4...@gmail.com
  
Hi
   
You can check here:
   
   
  https://builds.apache.org/view/M-R/view/MyFaces/job/myfaces-current22-1/
   
As soon as the job (#1164) is done, you can take the jars from that
location (which should be the same).
   
regards,
   
Leonardo Uribe
   
   
2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
   
 Okay, that is great. I'm waiting for the following folders to be
   updated
 with the latest version:

 1.


   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/

 2.


   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-impl/2.2.0-SNAPSHOT/




 On Thu, Oct 17, 2013 at 10:47 PM, Leonardo Uribe lu4...@gmail.com
 
wrote:

  Hi
 
  I have found the bug. The problem was caused on a refactor, there
  was
an
  old code that skip state saving when view map is empty, but now
  since
 there
  is a proxy for that implementing StateHolder, the map can be
 empty
   but
it
  holds the view scope key. Since with CDI the beans are stored
internally,
  the map keeps empty but the scope is not, and if the view scope
 key
   is
 lost
  the bean is recreated every time. But the beans are still in
  session,
and
  with the session timeout bug the final result is @PreDestroy is
 not
 called.
 
  Please try again with the latest code, it should work. And please
   lets
us
  know what happened, if it is working or not.
 
  regards,
 
  Leonardo Uribe
 
 
 
  2013/10/17 Leonardo Uribe lu4...@gmail.com
 
   Hi
  
   I have committed a fix for the problem with the timeout. But
 I'm
 curious
   about this problem, because I tested this scope and
 specifically
   the
   @PreDestroy stuff. It should work. But maybe there is a bug
 somewhere
  
   regards,
  
   Leonardo Uribe
  
  
   2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
  
   responses inline below,
  
  
  
   On Thu, Oct 17, 2013 at 9:32 PM, Leonardo Uribe 
  lu4...@gmail.com
   
  wrote:
  
   
public void onSessionDestroyed()
{
// In CDI case, the best way to deal with this is
 use
  a
 method
// with @PreDestroy annotation on a session scope
 bean
// ( ViewScopeBeanHolder.destroyBeans() ). There is
 no
need
// to do anything else in this location, but it is
   advised
// in CDI the beans are destroyed at the end of the
request,
// not when invalidateSession() is called.
FacesContext facesContext =
 FacesContext.getCurrentInstance();
if (facesContext != null)
{
   
I suppose what's going on there is in the context the
 session
   invalidation
is done, FacesContext is null and @PreDestroy is ignored.
   
  
   I can agree with that.
  
  
   
To be clear two questions:
   
1. Is manual session expiration working ? I suppose yes.
   
  
   hmmm does manual session expiration ==
 HttpSession.invalidate()?
  
   When user click Logout button, my app execute/triggers
   HttpSession.invalidate(), and @PreDestroy (on CDI @ViewScoped
   bean)
is
  not
   executed.
  
  
  
2. Is session invalidation by a timeout working ? I suppose
  no.
   
  
   correct, 

Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Gerhard Petracek
hi howard,

your test confirmed what i saw recently - we have already what i planned
to do (the confirmation of the issue).

regards,
gerhard

http://www.irian.at

Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces



2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

 Cool! If your test works against Leonardo's latest changes/fixes, please
 post/share your test results (and test steps). Thanks!


 On Fri, Oct 18, 2013 at 3:45 PM, Gerhard Petracek 
 gerhard.petra...@gmail.com wrote:

  hi howard,
 
  i just planned a short (re-)test for starting a discussion like this one.
 
  regards,
  gerhard
 
  http://www.irian.at
 
  Your JSF/JavaEE powerhouse -
  JavaEE Consulting, Development and
  Courses in English and German
 
  Professional Support for Apache MyFaces
 
 
  2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com
 
   Gerhard, you're welcome. since i don't have bandwidth (right now),
   maybe/hopefully, you can develop test case(s) per what we're
   discussing/testing/reporting here...if you have bandwidth to do so. :)
  
  
   On Fri, Oct 18, 2013 at 5:14 AM, Gerhard Petracek 
   gerhard.petra...@gmail.com wrote:
  
@howard:
that's one of the issues i mentioned during the discussion for
   MYFACES-3797
and i was going to test it tomorrow.
- thx for testing it and starting this thread.
   
regards,
gerhard
   
http://www.irian.at
   
Your JSF/JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German
   
Professional Support for Apache MyFaces
   
   
   
2013/10/18 Leonardo Uribe lu4...@gmail.com
   
 Hi

 You can check here:


  
 https://builds.apache.org/view/M-R/view/MyFaces/job/myfaces-current22-1/

 As soon as the job (#1164) is done, you can take the jars from that
 location (which should be the same).

 regards,

 Leonardo Uribe


 2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com

  Okay, that is great. I'm waiting for the following folders to be
updated
  with the latest version:
 
  1.
 
 

   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/
 
  2.
 
 

   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-impl/2.2.0-SNAPSHOT/
 
 
 
 
  On Thu, Oct 17, 2013 at 10:47 PM, Leonardo Uribe 
 lu4...@gmail.com
  
 wrote:
 
   Hi
  
   I have found the bug. The problem was caused on a refactor,
 there
   was
 an
   old code that skip state saving when view map is empty, but now
   since
  there
   is a proxy for that implementing StateHolder, the map can be
  empty
but
 it
   holds the view scope key. Since with CDI the beans are stored
 internally,
   the map keeps empty but the scope is not, and if the view scope
  key
is
  lost
   the bean is recreated every time. But the beans are still in
   session,
 and
   with the session timeout bug the final result is @PreDestroy is
  not
  called.
  
   Please try again with the latest code, it should work. And
 please
lets
 us
   know what happened, if it is working or not.
  
   regards,
  
   Leonardo Uribe
  
  
  
   2013/10/17 Leonardo Uribe lu4...@gmail.com
  
Hi
   
I have committed a fix for the problem with the timeout. But
  I'm
  curious
about this problem, because I tested this scope and
  specifically
the
@PreDestroy stuff. It should work. But maybe there is a bug
  somewhere
   
regards,
   
Leonardo Uribe
   
   
2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
   
responses inline below,
   
   
   
On Thu, Oct 17, 2013 at 9:32 PM, Leonardo Uribe 
   lu4...@gmail.com

   wrote:
   

 public void onSessionDestroyed()
 {
 // In CDI case, the best way to deal with this is
  use
   a
  method
 // with @PreDestroy annotation on a session scope
  bean
 // ( ViewScopeBeanHolder.destroyBeans() ). There
 is
  no
 need
 // to do anything else in this location, but it is
advised
 // in CDI the beans are destroyed at the end of
 the
 request,
 // not when invalidateSession() is called.
 FacesContext facesContext =
  FacesContext.getCurrentInstance();
 if (facesContext != null)
 {

 I suppose what's going on there is in the context the
  session
invalidation
 is done, FacesContext is null and @PreDestroy is ignored.

   

Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Gerhard, sounds good to me. :)


On Fri, Oct 18, 2013 at 4:22 PM, Gerhard Petracek 
gerhard.petra...@gmail.com wrote:

 hi howard,

 your test confirmed what i saw recently - we have already what i planned
 to do (the confirmation of the issue).

 regards,
 gerhard

 http://www.irian.at

 Your JSF/JavaEE powerhouse -
 JavaEE Consulting, Development and
 Courses in English and German

 Professional Support for Apache MyFaces



 2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

  Cool! If your test works against Leonardo's latest changes/fixes, please
  post/share your test results (and test steps). Thanks!
 
 
  On Fri, Oct 18, 2013 at 3:45 PM, Gerhard Petracek 
  gerhard.petra...@gmail.com wrote:
 
   hi howard,
  
   i just planned a short (re-)test for starting a discussion like this
 one.
  
   regards,
   gerhard
  
   http://www.irian.at
  
   Your JSF/JavaEE powerhouse -
   JavaEE Consulting, Development and
   Courses in English and German
  
   Professional Support for Apache MyFaces
  
  
   2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com
  
Gerhard, you're welcome. since i don't have bandwidth (right now),
maybe/hopefully, you can develop test case(s) per what we're
discussing/testing/reporting here...if you have bandwidth to do so.
 :)
   
   
On Fri, Oct 18, 2013 at 5:14 AM, Gerhard Petracek 
gerhard.petra...@gmail.com wrote:
   
 @howard:
 that's one of the issues i mentioned during the discussion for
MYFACES-3797
 and i was going to test it tomorrow.
 - thx for testing it and starting this thread.

 regards,
 gerhard

 http://www.irian.at

 Your JSF/JavaEE powerhouse -
 JavaEE Consulting, Development and
 Courses in English and German

 Professional Support for Apache MyFaces



 2013/10/18 Leonardo Uribe lu4...@gmail.com

  Hi
 
  You can check here:
 
 
   
  https://builds.apache.org/view/M-R/view/MyFaces/job/myfaces-current22-1/
 
  As soon as the job (#1164) is done, you can take the jars from
 that
  location (which should be the same).
 
  regards,
 
  Leonardo Uribe
 
 
  2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com
 
   Okay, that is great. I'm waiting for the following folders to
 be
 updated
   with the latest version:
  
   1.
  
  
 

   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/
  
   2.
  
  
 

   
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-impl/2.2.0-SNAPSHOT/
  
  
  
  
   On Thu, Oct 17, 2013 at 10:47 PM, Leonardo Uribe 
  lu4...@gmail.com
   
  wrote:
  
Hi
   
I have found the bug. The problem was caused on a refactor,
  there
was
  an
old code that skip state saving when view map is empty, but
 now
since
   there
is a proxy for that implementing StateHolder, the map can be
   empty
 but
  it
holds the view scope key. Since with CDI the beans are stored
  internally,
the map keeps empty but the scope is not, and if the view
 scope
   key
 is
   lost
the bean is recreated every time. But the beans are still in
session,
  and
with the session timeout bug the final result is @PreDestroy
 is
   not
   called.
   
Please try again with the latest code, it should work. And
  please
 lets
  us
know what happened, if it is working or not.
   
regards,
   
Leonardo Uribe
   
   
   
2013/10/17 Leonardo Uribe lu4...@gmail.com
   
 Hi

 I have committed a fix for the problem with the timeout.
 But
   I'm
   curious
 about this problem, because I tested this scope and
   specifically
 the
 @PreDestroy stuff. It should work. But maybe there is a bug
   somewhere

 regards,

 Leonardo Uribe


 2013/10/17 Howard W. Smith, Jr. smithh032...@gmail.com

 responses inline below,



 On Thu, Oct 17, 2013 at 9:32 PM, Leonardo Uribe 
lu4...@gmail.com
 
wrote:

 
  public void onSessionDestroyed()
  {
  // In CDI case, the best way to deal with this
 is
   use
a
   method
  // with @PreDestroy annotation on a session
 scope
   bean
  // ( ViewScopeBeanHolder.destroyBeans() ). There
  is
   no
  need
  // to do anything else in this location, but it
 is
 advised
  // in CDI the beans are destroyed at the end of
  the
  request,
  // not when invalidateSession() is called.

Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Leonardo,

I see myfaces 2.2 api JAR was updated but not myfaces 2.2 impl JAR. Did you
want me to just download the following JAR and retest, or there is
another/later version of the JAR, which is yet to be built?

myfaces-api-2.2.0-20131018.201520-2509.jarhttps://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/myfaces-api-2.2.0-20131018.201520-2509.jar


thanks,
Howard

On Fri, Oct 18, 2013 at 3:05 PM, Leonardo Uribe lu4...@gmail.com wrote:

 Hi

 I have committed a mixed solution between @PreDestroy annotation and
 ManagedBeanDestroyerListener. The idea is the first one in destroy the
 beans wins and the second one is just ignored. I have tested it with both
 configurations, so I hope it will work in your application.

 Let us know what happen and thanks Howard for report this. This is the kind
 of help that is very useful for the project in general.

 regards,

 Leonardo Uribe


 2013/10/18 Leonardo Uribe lu4...@gmail.com

  Hi
 
  I was able to reproduce the problem. I have been testing this issue
  against jetty / weld, and this issue comes when using tomcat / owb
  configuration. It seems when the session is destroyed,
  CDIManagedBeanHandlerImpl try to get a reference of ViewScopeBeanHolder
 and
  FlowScopeBeanHolder, but in that point of time the injection does not
 work
  as you can expect and ViewScopeBeanHolder is recreated.
 
  This issue is becoming difficult ...
 
  regards,
 
  Leonardo Uribe
 
 
 
  2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com
 
  On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
  smithh032...@gmail.com wrote:
 
   OmniFaces CDI @ViewScoped[1] executes @PreDestroy on
  session.invalidate()
   and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
   implementation is not doing the same.
 
 
  I am not trying to do any type of cross-forum posting. My goal is to
  communicate/share my actual/expected test results.
 
  In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 + OmniFaces
  1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session
 invalidation
  'and' expiration. Some minutes ago, I did a test against production app,
  and just wanted to show you my 'actual test results' of production
 (which)
  = 'expected test results' of MyFaces 2.2 CDI @ViewScoped.
 
  In production, session timeout = 15 minutes, so I did a test against
  production server, and did the 'same' test as Test 2 (session
 expiration)
  in my previous post that included my latest test and test results of
  MyFaces 2.2 CDI @ViewScoped.
 
 
  Test: login user, navigate to page which references CDI @ViewScoped
 bean,
  F5/refresh browser to generate another CDI @ViewScoped bean, and let
  session expire via (15-minute) session timeout; @PreDestroy of
 (OmniFaces)
  CDI @ViewScoped bean executed. see below.
 
  Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
  INFO: administrator logged in at 10/18/2013 11:20 AM
 
  Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
  INFO: jsf.orders.OrderDocumentBean@650707eb
 
  Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
  INFO: jsf.orders.OrderDocumentBean@132f168a
 
  -- session expired --
 
  Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
  INFO: jsf.orders.OrderDocumentBean@132f168a
 
  Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
  INFO: jsf.orders.OrderDocumentBean@650707eb
 
  Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController sessionTimeout
  INFO: administrator session ended at 10/18/2013 11:35 AM
 
 
 



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Leonardo Uribe
Hi Howard

It seems something failed in the build, but it was not in the code, it was
like an interruption on jenkins.

I have added the artifacts in:

https://issues.apache.org/jira/browse/MYFACES-3747

https://issues.apache.org/jira/secure/attachment/12609208/myfaces-api-2.2.0-SNAPSHOT.jar
https://issues.apache.org/jira/secure/attachment/12609209/myfaces-impl-2.2.0-SNAPSHOT.jar

please try these artifacts.

regards,

Leonardo Uribe


2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

 Leonardo,

 I see myfaces 2.2 api JAR was updated but not myfaces 2.2 impl JAR. Did you
 want me to just download the following JAR and retest, or there is
 another/later version of the JAR, which is yet to be built?

 myfaces-api-2.2.0-20131018.201520-2509.jar
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/myfaces-api-2.2.0-20131018.201520-2509.jar
 


 thanks,
 Howard

 On Fri, Oct 18, 2013 at 3:05 PM, Leonardo Uribe lu4...@gmail.com wrote:

  Hi
 
  I have committed a mixed solution between @PreDestroy annotation and
  ManagedBeanDestroyerListener. The idea is the first one in destroy the
  beans wins and the second one is just ignored. I have tested it with both
  configurations, so I hope it will work in your application.
 
  Let us know what happen and thanks Howard for report this. This is the
 kind
  of help that is very useful for the project in general.
 
  regards,
 
  Leonardo Uribe
 
 
  2013/10/18 Leonardo Uribe lu4...@gmail.com
 
   Hi
  
   I was able to reproduce the problem. I have been testing this issue
   against jetty / weld, and this issue comes when using tomcat / owb
   configuration. It seems when the session is destroyed,
   CDIManagedBeanHandlerImpl try to get a reference of ViewScopeBeanHolder
  and
   FlowScopeBeanHolder, but in that point of time the injection does not
  work
   as you can expect and ViewScopeBeanHolder is recreated.
  
   This issue is becoming difficult ...
  
   regards,
  
   Leonardo Uribe
  
  
  
   2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com
  
   On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
   smithh032...@gmail.com wrote:
  
OmniFaces CDI @ViewScoped[1] executes @PreDestroy on
   session.invalidate()
and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
implementation is not doing the same.
  
  
   I am not trying to do any type of cross-forum posting. My goal is to
   communicate/share my actual/expected test results.
  
   In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 +
 OmniFaces
   1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session
  invalidation
   'and' expiration. Some minutes ago, I did a test against production
 app,
   and just wanted to show you my 'actual test results' of production
  (which)
   = 'expected test results' of MyFaces 2.2 CDI @ViewScoped.
  
   In production, session timeout = 15 minutes, so I did a test against
   production server, and did the 'same' test as Test 2 (session
  expiration)
   in my previous post that included my latest test and test results of
   MyFaces 2.2 CDI @ViewScoped.
  
  
   Test: login user, navigate to page which references CDI @ViewScoped
  bean,
   F5/refresh browser to generate another CDI @ViewScoped bean, and let
   session expire via (15-minute) session timeout; @PreDestroy of
  (OmniFaces)
   CDI @ViewScoped bean executed. see below.
  
   Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
   INFO: administrator logged in at 10/18/2013 11:20 AM
  
   Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
   INFO: jsf.orders.OrderDocumentBean@650707eb
  
   Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
   INFO: jsf.orders.OrderDocumentBean@132f168a
  
   -- session expired --
  
   Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
   INFO: jsf.orders.OrderDocumentBean@132f168a
  
   Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean releaseResources
   INFO: jsf.orders.OrderDocumentBean@650707eb
  
   Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController sessionTimeout
   INFO: administrator session ended at 10/18/2013 11:35 AM
  
  
  
 



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Hmmm...

On Fri, Oct 18, 2013 at 11:56 AM, Howard W. Smith, Jr. 
smithh032...@gmail.com wrote:

 My goal is to communicate/share my actual/expected test results.


More to share below. Earlier, when I tested via 2013-Oct-18 MyFaces 2.2
JARs, exceptions showed up in localhost log, but I just recognized them (in
NetBeans). See exceptions below (there are 3 to 5 exceptions below).


Oct 18, 2013 10:57:23 AM org.apache.catalina.session.StandardSession expire
SEVERE: Session event listener threw exception
java.lang.UnsupportedOperationException: This method is not supported
during shutdown
at
org.apache.myfaces.context.servlet.StartupServletExternalContextImpl.getSessionMap(StartupServletExternalContextImpl.java:205)
at
org.apache.myfaces.cdi.impl.CDIManagedBeanHandlerImpl.isViewScopeBeanHolderCreated(CDIManagedBeanHandlerImpl.java:112)
at
org.apache.myfaces.cdi.impl.CDIManagedBeanHandlerImpl.onSessionDestroyed(CDIManagedBeanHandlerImpl.java:99)
at
org.apache.myfaces.webapp.ManagedBeanDestroyerListener.sessionDestroyed(ManagedBeanDestroyerListener.java:172)
at
org.apache.myfaces.webapp.StartupServletContextListener.sessionDestroyed(StartupServletContextListener.java:369)
at
org.apache.catalina.session.StandardSession.expire(StandardSession.java:806)
at
org.apache.catalina.session.StandardSession.expire(StandardSession.java:742)
at
org.apache.catalina.session.StandardSession.invalidate(StandardSession.java:1253)
at
org.apache.catalina.session.StandardSessionFacade.invalidate(StandardSessionFacade.java:190)
at pf.LoginFilter.doFilter(LoginFilter.java:206)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

Oct 18, 2013 10:58:13 AM org.apache.catalina.session.StandardSession expire
SEVERE: Session event listener threw exception
java.lang.UnsupportedOperationException: This method is not supported
during shutdown
at
org.apache.myfaces.context.servlet.StartupServletExternalContextImpl.getSessionMap(StartupServletExternalContextImpl.java:205)
at
org.apache.myfaces.cdi.impl.CDIManagedBeanHandlerImpl.isViewScopeBeanHolderCreated(CDIManagedBeanHandlerImpl.java:112)
at
org.apache.myfaces.cdi.impl.CDIManagedBeanHandlerImpl.onSessionDestroyed(CDIManagedBeanHandlerImpl.java:99)
at
org.apache.myfaces.webapp.ManagedBeanDestroyerListener.sessionDestroyed(ManagedBeanDestroyerListener.java:172)
at
org.apache.myfaces.webapp.StartupServletContextListener.sessionDestroyed(StartupServletContextListener.java:369)
at
org.apache.catalina.session.StandardSession.expire(StandardSession.java:806)
at
org.apache.catalina.session.StandardSession.isValid(StandardSession.java:658)
at
org.apache.catalina.session.ManagerBase.processExpires(ManagerBase.java:534)
at
org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:519)
at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1352)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
at
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
at java.lang.Thread.run(Thread.java:724)

Oct 18, 2013 10:59:10 AM org.apache.catalina.session.StandardSession expire
SEVERE: Session event listener threw exception
java.lang.UnsupportedOperationException: This method is not supported
during shutdown
at

Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Leonardo,

Okay, i will download those artifacts and test and report test results,
ASAP.

thanks,
Howard


On Fri, Oct 18, 2013 at 5:06 PM, Leonardo Uribe lu4...@gmail.com wrote:

 Hi Howard

 It seems something failed in the build, but it was not in the code, it was
 like an interruption on jenkins.

 I have added the artifacts in:

 https://issues.apache.org/jira/browse/MYFACES-3747


 https://issues.apache.org/jira/secure/attachment/12609208/myfaces-api-2.2.0-SNAPSHOT.jar

 https://issues.apache.org/jira/secure/attachment/12609209/myfaces-impl-2.2.0-SNAPSHOT.jar

 please try these artifacts.

 regards,

 Leonardo Uribe


 2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

  Leonardo,
 
  I see myfaces 2.2 api JAR was updated but not myfaces 2.2 impl JAR. Did
 you
  want me to just download the following JAR and retest, or there is
  another/later version of the JAR, which is yet to be built?
 
  myfaces-api-2.2.0-20131018.201520-2509.jar
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/myfaces-api-2.2.0-20131018.201520-2509.jar
  
 
 
  thanks,
  Howard
 
  On Fri, Oct 18, 2013 at 3:05 PM, Leonardo Uribe lu4...@gmail.com
 wrote:
 
   Hi
  
   I have committed a mixed solution between @PreDestroy annotation and
   ManagedBeanDestroyerListener. The idea is the first one in destroy the
   beans wins and the second one is just ignored. I have tested it with
 both
   configurations, so I hope it will work in your application.
  
   Let us know what happen and thanks Howard for report this. This is the
  kind
   of help that is very useful for the project in general.
  
   regards,
  
   Leonardo Uribe
  
  
   2013/10/18 Leonardo Uribe lu4...@gmail.com
  
Hi
   
I was able to reproduce the problem. I have been testing this issue
against jetty / weld, and this issue comes when using tomcat / owb
configuration. It seems when the session is destroyed,
CDIManagedBeanHandlerImpl try to get a reference of
 ViewScopeBeanHolder
   and
FlowScopeBeanHolder, but in that point of time the injection does not
   work
as you can expect and ViewScopeBeanHolder is recreated.
   
This issue is becoming difficult ...
   
regards,
   
Leonardo Uribe
   
   
   
2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com
   
On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
smithh032...@gmail.com wrote:
   
 OmniFaces CDI @ViewScoped[1] executes @PreDestroy on
session.invalidate()
 and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
 implementation is not doing the same.
   
   
I am not trying to do any type of cross-forum posting. My goal is to
communicate/share my actual/expected test results.
   
In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 +
  OmniFaces
1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session
   invalidation
'and' expiration. Some minutes ago, I did a test against production
  app,
and just wanted to show you my 'actual test results' of production
   (which)
= 'expected test results' of MyFaces 2.2 CDI @ViewScoped.
   
In production, session timeout = 15 minutes, so I did a test against
production server, and did the 'same' test as Test 2 (session
   expiration)
in my previous post that included my latest test and test results of
MyFaces 2.2 CDI @ViewScoped.
   
   
Test: login user, navigate to page which references CDI @ViewScoped
   bean,
F5/refresh browser to generate another CDI @ViewScoped bean, and let
session expire via (15-minute) session timeout; @PreDestroy of
   (OmniFaces)
CDI @ViewScoped bean executed. see below.
   
Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
INFO: administrator logged in at 10/18/2013 11:20 AM
   
Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@650707eb
   
Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@132f168a
   
-- session expired --
   
Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean
 releaseResources
INFO: jsf.orders.OrderDocumentBean@132f168a
   
Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean
 releaseResources
INFO: jsf.orders.OrderDocumentBean@650707eb
   
Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController sessionTimeout
INFO: administrator session ended at 10/18/2013 11:35 AM
   
   
   
  
 



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Leonardo Uribe
I saw the exception too, and the artifacts attached to the issue already
has the fix for the exception you mention.




2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

 Leonardo,

 Okay, i will download those artifacts and test and report test results,
 ASAP.

 thanks,
 Howard


 On Fri, Oct 18, 2013 at 5:06 PM, Leonardo Uribe lu4...@gmail.com wrote:

  Hi Howard
 
  It seems something failed in the build, but it was not in the code, it
 was
  like an interruption on jenkins.
 
  I have added the artifacts in:
 
  https://issues.apache.org/jira/browse/MYFACES-3747
 
 
 
 https://issues.apache.org/jira/secure/attachment/12609208/myfaces-api-2.2.0-SNAPSHOT.jar
 
 
 https://issues.apache.org/jira/secure/attachment/12609209/myfaces-impl-2.2.0-SNAPSHOT.jar
 
  please try these artifacts.
 
  regards,
 
  Leonardo Uribe
 
 
  2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com
 
   Leonardo,
  
   I see myfaces 2.2 api JAR was updated but not myfaces 2.2 impl JAR. Did
  you
   want me to just download the following JAR and retest, or there is
   another/later version of the JAR, which is yet to be built?
  
   myfaces-api-2.2.0-20131018.201520-2509.jar
  
 
 https://repository.apache.org/content/repositories/snapshots/org/apache/myfaces/core/myfaces-api/2.2.0-SNAPSHOT/myfaces-api-2.2.0-20131018.201520-2509.jar
   
  
  
   thanks,
   Howard
  
   On Fri, Oct 18, 2013 at 3:05 PM, Leonardo Uribe lu4...@gmail.com
  wrote:
  
Hi
   
I have committed a mixed solution between @PreDestroy annotation and
ManagedBeanDestroyerListener. The idea is the first one in destroy
 the
beans wins and the second one is just ignored. I have tested it with
  both
configurations, so I hope it will work in your application.
   
Let us know what happen and thanks Howard for report this. This is
 the
   kind
of help that is very useful for the project in general.
   
regards,
   
Leonardo Uribe
   
   
2013/10/18 Leonardo Uribe lu4...@gmail.com
   
 Hi

 I was able to reproduce the problem. I have been testing this issue
 against jetty / weld, and this issue comes when using tomcat / owb
 configuration. It seems when the session is destroyed,
 CDIManagedBeanHandlerImpl try to get a reference of
  ViewScopeBeanHolder
and
 FlowScopeBeanHolder, but in that point of time the injection does
 not
work
 as you can expect and ViewScopeBeanHolder is recreated.

 This issue is becoming difficult ...

 regards,

 Leonardo Uribe



 2013/10/18 Howard W. Smith, Jr. smithh032...@gmail.com

 On Thu, Oct 17, 2013 at 9:04 PM, Howard W. Smith, Jr. 
 smithh032...@gmail.com wrote:

  OmniFaces CDI @ViewScoped[1] executes @PreDestroy on
 session.invalidate()
  and that is what I like/expect, but MyFaces 2.2 CDI @ViewScoped
  implementation is not doing the same.


 I am not trying to do any type of cross-forum posting. My goal is
 to
 communicate/share my actual/expected test results.

 In production, I am using TomEE 1.6.0 (OWB) + MyFaces 2.1.12 +
   OmniFaces
 1.6(.1) CDI @ViewScoped, which invokes @PreDestroy on session
invalidation
 'and' expiration. Some minutes ago, I did a test against
 production
   app,
 and just wanted to show you my 'actual test results' of production
(which)
 = 'expected test results' of MyFaces 2.2 CDI @ViewScoped.

 In production, session timeout = 15 minutes, so I did a test
 against
 production server, and did the 'same' test as Test 2 (session
expiration)
 in my previous post that included my latest test and test results
 of
 MyFaces 2.2 CDI @ViewScoped.


 Test: login user, navigate to page which references CDI
 @ViewScoped
bean,
 F5/refresh browser to generate another CDI @ViewScoped bean, and
 let
 session expire via (15-minute) session timeout; @PreDestroy of
(OmniFaces)
 CDI @ViewScoped bean executed. see below.

 Oct 18, 2013 11:20:29 AM jsf.users.pf_UsersController loginUser
 INFO: administrator logged in at 10/18/2013 11:20 AM

 Oct 18, 2013 11:20:39 AM jsf.orders.OrderDocumentBean init
 INFO: jsf.orders.OrderDocumentBean@650707eb

 Oct 18, 2013 11:20:42 AM jsf.orders.OrderDocumentBean init
 INFO: jsf.orders.OrderDocumentBean@132f168a

 -- session expired --

 Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean
  releaseResources
 INFO: jsf.orders.OrderDocumentBean@132f168a

 Oct 18, 2013 11:35:43 AM jsf.orders.OrderDocumentBean
  releaseResources
 INFO: jsf.orders.OrderDocumentBean@650707eb

 Oct 18, 2013 11:35:43 AM jsf.users.pf_UsersController
 sessionTimeout
 INFO: administrator session ended at 10/18/2013 11:35 AM



   
  
 



Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
Good news! See (all) below, please :)

On Fri, Oct 18, 2013 at 5:06 PM, Leonardo Uribe lu4...@gmail.com wrote:

 I have added the artifacts in:

 https://issues.apache.org/jira/browse/MYFACES-3747


 https://issues.apache.org/jira/secure/attachment/12609208/myfaces-api-2.2.0-SNAPSHOT.jar

 https://issues.apache.org/jira/secure/attachment/12609209/myfaces-impl-2.2.0-SNAPSHOT.jar

 please try these artifacts.


Downloaded those artifacts, dropped in tomee/lib, regenerated my WAR (just
in case), dropped WAR in tomee/webapps, started tomee, and the following
showed up in log:

Oct 18, 2013 5:28:47 PM org.apache.myfaces.config.LogMetaInfUtils
logArtifact
INFO: Artifact 'myfaces-api' was found in version '2.2.0-SNAPSHOT' from
path
'file:/C:/apache-tomee-plus-1.6.0-SNAPSHOT/lib/myfaces-api-2.2.0-SNAPSHOT.jar'
Oct 18, 2013 5:28:47 PM org.apache.myfaces.config.LogMetaInfUtils
logArtifact
INFO: Artifact 'myfaces-impl' was found in version '2.2.0-SNAPSHOT' from
path
'file:/C:/apache-tomee-plus-1.6.0-SNAPSHOT/lib/myfaces-impl-2.2.0-SNAPSHOT.jar'
Oct 18, 2013 5:28:47 PM org.apache.myfaces.util.ExternalSpecifications
isCDIAvailable
INFO: MyFaces CDI support enabled
Oct 18, 2013 5:28:47 PM
org.apache.myfaces.spi.impl.DefaultInjectionProviderFactory
getInjectionProvider
INFO: Using InjectionProvider
org.apache.myfaces.spi.impl.Tomcat7AnnotationInjectionProvider

--- logged in (web) app ---

Oct 18, 2013 5:32:24 PM jsf.users.pf_UsersController loginUser
INFO: administrator logged in at 10/18/2013 05:32 PM

--- repeated test steps that I mentioned in earlier responses in this email
thread ---

Oct 18, 2013 5:32:34 PM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@7db07a20
Oct 18, 2013 5:32:37 PM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@ab9ec77

--- session expired via 1 minute session timeout, @PreDestroy of MyFaces
2.2 CDI @ViewScoped bean executed ---

Oct 18, 2013 5:33:37 PM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@ab9ec77
Oct 18, 2013 5:33:37 PM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@7db07a20
Oct 18, 2013 5:33:37 PM jsf.users.pf_UsersController sessionTimeout
INFO: administrator session ended at 10/18/2013 05:33 PM

--- also, no exceptions in localhost log, when shutdown tomee ---

i will repeat my test 1 or 2 more times, just to confirm.


Re: [MyFaces 2.2] invoke @PreDestroy on (CDI) ViewScoped beans upon session expiration

2013-10-18 Thread Howard W. Smith, Jr.
On Fri, Oct 18, 2013 at 5:51 PM, Howard W. Smith, Jr. 
smithh032...@gmail.com wrote:

 i will repeat my test 1 or 2 more times, just to confirm.



Test 1: session invalidation (login, reference @ViewScoped bean, logout,
which does HttpSession.invalidate())

Oct 18, 2013 5:53:45 PM jsf.users.pf_UsersController loginUser
INFO: administrator logged in at 10/18/2013 05:53 PM

Oct 18, 2013 5:55:05 PM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@4d807a04
Oct 18, 2013 5:55:09 PM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@3579149

Oct 18, 2013 5:55:15 PM jsf.users.pf_UsersController logout
INFO: administrator logged out at 10/18/2013 05:55 PM

Oct 18, 2013 5:55:15 PM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@3579149
Oct 18, 2013 5:55:15 PM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@4d807a04


Test 2: session expiration; repeated test steps mentioned in my previous
post

Oct 18, 2013 5:55:45 PM jsf.users.pf_UsersController loginUser
INFO: administrator logged in at 10/18/2013 05:55 PM

Oct 18, 2013 5:55:58 PM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@2340e3d5
Oct 18, 2013 5:56:01 PM jsf.orders.OrderDocumentBean init
INFO: jsf.orders.OrderDocumentBean@3deaf302
Oct 18, 2013 5:57:01 PM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@3deaf302

Oct 18, 2013 5:57:01 PM jsf.orders.OrderDocumentBean releaseResources
INFO: jsf.orders.OrderDocumentBean@2340e3d5
Oct 18, 2013 5:57:01 PM jsf.users.pf_UsersController sessionTimeout
INFO: administrator session ended at 10/18/2013 05:57 PM


Based on these test results, @PreDestroy of MyFaces 2.2 CDI @ViewScoped
bean is executed via session invalidation and expiration. :)

Great work and thank you, Leonardo, Gerhard, and MyFaces team! :)