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

Todd Bush updated SHALE-409:
----------------------------

    Description: 
I found this issue while debugging why Shale-1.0.4 caused AJAX4JSF to stop 
working.  Within the ViewPhaseListener.afterRenderResponse method, all 
ViewControllers and AbstractRequestBeans are removed from the request map.  
Then a second loop through the request map removes all other entries in an 
attempt to remove any annotated managed beans.  AJAX4JSF relies on entries in 
the request map while parsing the outgoing HTML, entries which are removed by 
this phase listener.  Once I comment out the second request map loop, AJAX4JSF 
works.  Any other technology which relies on request map entries after render 
response will have a similar problem with Shale.

The second loop:

        entries = map.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            if (!list.contains(entry.getKey())) {
                list.add(entry.getKey());
            }
        }

PS.  Please ignore my comment below.


  was:
I found this issue while debugging why Shale-1.0.4 caused AJAX4JSF to stop 
working.  Within the ViewPhaseListener.afterRenderResponse method, all 
ViewControllers and AbstractRequestBeans are removed from the request map.  
Then a second loop through the request map removes all other entries in an 
attempt to remove any annotated managed beans.  AJAX4JSF relies on entries in 
the request map while parsing the outgoing HTML, entries which are removed by 
this phase listener.  Once I comment out the second request map loop, AJAX4JSF 
works.  Any other technology which relies on request map entries after render 
response will have a similar problem with Shale.

The second loop:

        entries = map.entrySet().iterator();
        while (entries.hasNext()) {
            Map.Entry entry = (Map.Entry) entries.next();
            if (!list.contains(entry.getKey())) {
                list.add(entry.getKey());
            }
        }



> Shale 1.0.4+ incorrectly removes all entries in the request map after render 
> response
> -------------------------------------------------------------------------------------
>
>                 Key: SHALE-409
>                 URL: https://issues.apache.org/struts/browse/SHALE-409
>             Project: Shale
>          Issue Type: Bug
>          Components: View
>    Affects Versions: 1.0.4, 1.0.5-SNAPSHOT
>         Environment: WinXP, AJAX4JSF-1.0.6+, Shale-1.0.4 (Application, Core, 
> Dialog, Spring, Tiger, View)
>            Reporter: Todd Bush
>
> I found this issue while debugging why Shale-1.0.4 caused AJAX4JSF to stop 
> working.  Within the ViewPhaseListener.afterRenderResponse method, all 
> ViewControllers and AbstractRequestBeans are removed from the request map.  
> Then a second loop through the request map removes all other entries in an 
> attempt to remove any annotated managed beans.  AJAX4JSF relies on entries in 
> the request map while parsing the outgoing HTML, entries which are removed by 
> this phase listener.  Once I comment out the second request map loop, 
> AJAX4JSF works.  Any other technology which relies on request map entries 
> after render response will have a similar problem with Shale.
> The second loop:
>         entries = map.entrySet().iterator();
>         while (entries.hasNext()) {
>             Map.Entry entry = (Map.Entry) entries.next();
>             if (!list.contains(entry.getKey())) {
>                 list.add(entry.getKey());
>             }
>         }
> PS.  Please ignore my comment below.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to