On 1/22/07, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:

I guess since other will run into this,
I created a ticket and marked it as fixed for 1.1.0
so the release notes contain that ;)

https://issues.apache.org/struts/browse/SHALE-394


Thanks Matthias!

Craig


On 1/21/07, Adrian Gonzalez <[EMAIL PROTECTED]> wrote:
> 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.HtmlTableRendererBaseencodeInnerHtmlRow
 is not available. Rowindex = 3
> > > [21/01/07 20:38:38:921 CET] 00000043 HtmlResponseW W
> > >
org.apache.myfaces.shared_impl.renderkit.html.HtmlResponseWriterImplendElementHTML
 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.PhaseListenerManagerinformPhaseListenersAfterException
 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
>


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

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

Reply via email to