Thank you very much.

So, I suppose I don't need to open an issue anymore ?

----- Message d'origine ----
De : Matthias Wessendorf <[EMAIL PROTECTED]>
À : user@shale.apache.org
Envoyé le : Dimanche, 21 Janvier 2007, 23h40mn 24s
Objet : Re: [Shale view 1.0.4]

fixed already in current trunk

(see svn commit: r497775)

or

http://svn.apache.org/viewvc/shale/framework/trunk/shale-view/src/main/java/org/apache/shale/view/faces/ViewPhaseListener.java?view=diff&r1=497774&r2=497775&pathrev=497775


thx,
Matt

On 1/21/07, Craig McClanahan <[EMAIL PROTECTED]> wrote:
> On 1/21/07, Adrian Gonzalez <[EMAIL PROTECTED]> wrote:
> >
> >
> > 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).
>
>
> Adrian,
>
> Thanks very much for the thorough analysis ... it looks like you are on
> target (although it likely depends on your VM's implementation of the
> iterator methods so the problem may or may not manifest itself everywhere).
>
> Could you do me a favor and file a bug in our issue tracking system[1] for
> this?  That way, the eventual fix will automatically be included in the
> release notes for the next version.
>
> Craig
>
> [1] https://issues.apache.org/struts/browse/SHALE
>
>
>
> 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.HtmlTableRendererBaseencodeInnerHtml
> >  Row is not available. Rowindex = 3
> > [21/01/07 20:38:38:921 CET] 00000043 HtmlResponseW W
> > org.apache.myfaces.shared_impl.renderkit.html.HtmlResponseWriterImplendElement
> >  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.PhaseListenerManagerinformPhaseListenersAfter 
> > 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
> >
>
>


-- 
Matthias Wessendorf
http://tinyurl.com/fmywh

further stuff:
blog: http://jroller.com/page/mwessendorf
mail: mwessendorf-at-gmail-dot-com





        

        
                
___________________________________________________________________________ 
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