>From: <[EMAIL PROTECTED]>
>
>
>
> I have successfully tested to comment the second loop:
>
> // Second select all remaining instances, which will include
> annotated
>
> // managed beans if Shale Tiger is present
>
> /*
>
> entries = map.entrySet().iterator();
>
> while (entries.hasNext()) {
>
> Map.Entry entry = (Map.Entry) entries.next();
>
> if (!list.contains(entry.getKey())) {
>
> list.add(entry.getKey());
>
> }
>
> }*/
>
>
>
> Is there any one can try it and plans to release the fix?
>
The problem with commenting out this loop is that we might
break someone else's application. The second loop forces
the destroy method to be invoked for beans with the @Destroy
annotation before the response has completed and the faces
context released.
I've been looking at this one off and on. At first I thought we
could just invoke the LifecycleListener from the ViewPhaseListener
but we don't have ServletContextEvent there.
Another option might be to add a destroy method to the
ViewControllerCallbacks class. This utility bean is registered as
a managed bean. The tiger library overrides the registered bean
to look for the @Preprocess and @Prerender runtime method
annotations. The ViewControllerCallbacks2 class would inspect
for the @Destroy annotation or the other interfaces.
We could remove the second loop and modify the first to use the
ViewControllerCallbacks bean.
Consider:
// First select all the ViewController and AbstractRequestBean instances
while (entries.hasNext()) {
Map.Entry entry = (Map.Entry) entries.next();
if
(getViewControllerCallbacks(event.getFacesContext()).hasDestroy(entry.getValue()))
{
list.add(entry.getKey());
}
}
What do you think?
>
>
> Can I help you?
>
>
>
> Thanks in advance
>
> Mario
>
>
>
>
>
> This message is for the designated recipient only and may contain privileged,
> proprietary, or otherwise private information. If you have received it in
> error, please notify the sender immediately and delete the original. Any
> other
> use of the email by you is prohibited.
>