Hello, 

I think there's a little bug on shale view 1.0.4.

Shale View : Bug on render response phase when removing view from request map.

Error in org.apache.shale.view.faces.ViewPhaseListener, method 
afterRenderResponse, lien 233 :
iterator obtained from map, code calling map.remove, and afterward using 
iterator which generated ConcurrentModificationException.

Just change this order :
- remove FacesConstants.VIEWS_INITIALIZED from map.
- obtain iterator.
- use iterator.

I've just changed this piece of code in order to have :
    private void afterRenderResponse(PhaseEvent event) {
        /*AFTER CHANGE*/
        // Initialize local values we will need
        Map map = event.getFacesContext().getExternalContext().getRequestMap();
        List list = new ArrayList();

        // Remove our list of initialized views explicitly
        map.remove(FacesConstants.VIEWS_INITIALIZED);

        Iterator entries = map.entrySet().iterator();

instead of :
        /*BEFORE CHANGE
        // Initialize local values we will need
        Map map = event.getFacesContext().getExternalContext().getRequestMap();
        List list = new ArrayList();
        Iterator entries = map.entrySet().iterator();

        // Remove our list of initialized views explicitly
        map.remove(FacesConstants.VIEWS_INITIALIZED);

And it's ok (or it seems).

Here's the stack trace I had :
[21/01/07 20:38:36:453 CET] 00000043 helper        I   BEFORE RENDER_RESPONSE(6)
[21/01/07 20:38:38:765 CET] 00000043 HtmlTableRend E 
org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase 
encodeInnerHtml Row is not available. Rowindex = 3
[21/01/07 20:38:38:921 CET] 00000043 HtmlResponseW W 
org.apache.myfaces.shared_impl.renderkit.html.HtmlResponseWriterImpl endElement 
HTML nesting warning on closing tbody: element tr rendered by component : 
{Component-Path : [Class: 
org.ajax4jsf.framework.ajax.AjaxViewRootRIOneOne,ViewId: /userList.jsp][Class: 
javax.faces.component.html.HtmlForm,Id: editUser][Class: 
org.apache.myfaces.component.html.ext.HtmlDataTable,Id: userList]} not 
explicitly closed
[21/01/07 20:38:40:250 CET] 00000043 PhaseListener E 
org.apache.myfaces.lifecycle.PhaseListenerManager informPhaseListenersAfter 
Exception in PhaseListener RENDER_RESPONSE(6) afterPhase
                                 java.util.ConcurrentModificationException
    at java.util.HashMap$HashIterator.nextEntry(HashMap.java:942)
    at java.util.HashMap$KeyIterator.next(HashMap.java:978)
    at 
com.ibm.ws.webcontainer.srt.SRTServletRequest$1.nextElement(SRTServletRequest.java:177)
    at 
org.apache.myfaces.context.servlet.AbstractAttributeMap$KeyIterator.next(AbstractAttributeMap.java:210)
    at 
org.apache.myfaces.context.servlet.AbstractAttributeMap$EntryIterator.next(AbstractAttributeMap.java:306)
    at 
org.apache.shale.view.faces.ViewPhaseListener.afterRenderResponse(ViewPhaseListener.java:233)
    at 
org.apache.shale.view.faces.ViewPhaseListener.afterPhase(ViewPhaseListener.java:106)
    at 
org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:89)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:391)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
    at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:74)
    at 
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1282)
    at 
com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1239)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:136)
    at 
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:67)
    at 
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:223)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at org.firsttest.webapp.filter.MessageFilter.doFilter(MessageFilter.java:45)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:375)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
net.sf.ehcache.constructs.web.filter.GzipFilter.doFilter(GzipFilter.java:75)
    at net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:89)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
org.firsttest.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:55)
    at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
    at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
    at 
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    at 
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at 
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at 
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at 
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at 
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at 
org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:108)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at 
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:193)
    at 
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    at 
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
    at 
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)
    at 
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:121)
    at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
    at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    at 
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:142)





        
        
                
___________________________________________________________________________ 
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions ! 
Profitez des connaissances, des opinions et des expériences des internautes sur 
Yahoo! Questions/Réponses 
http://fr.answers.yahoo.com

Reply via email to