[ 
https://issues.apache.org/jira/browse/TRINIDAD-1648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12785819#action_12785819
 ] 

Matthias Weßendorf commented on TRINIDAD-1648:
----------------------------------------------

entire IllegalStateException stack trace:

WARNING: The id "sp11" is used more than once.
java.lang.IllegalStateException: Parent was not null, but this component not 
related
        at 
javax.faces.component.UIComponentBase.eraseParent(UIComponentBase.java:520)
        at 
javax.faces.component.UIComponentBase.access$400(UIComponentBase.java:104)
        at 
javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2437)
        at 
javax.faces.component.UIComponentBase$ChildrenList.add(UIComponentBase.java:2411)
        at 
javax.faces.component.UIViewRoot.addComponentResource(UIViewRoot.java:531)
        at 
com.sun.faces.renderkit.html_basic.ScriptStyleBaseRenderer.processEvent(ScriptStyleBaseRenderer.java:99)
        at 
javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2342)
        at javax.faces.event.SystemEvent.processListener(SystemEvent.java:102)
        at 
com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:1993)
        at 
com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:1941)
        at 
com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:285)
        at 
com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:243)
        at 
javax.faces.component.UIComponentBase.publishAfterViewEvents(UIComponentBase.java:2005)
        at 
javax.faces.component.UIComponentBase.doPostAddProcessing(UIComponentBase.java:1691)
        at 
javax.faces.component.UIComponentBase.setParent(UIComponentBase.java:403)
        at 
org.apache.myfaces.trinidad.component.ChildArrayList.add(ChildArrayList.java:61)
        at 
org.apache.myfaces.trinidad.component.ChildArrayList.add(ChildArrayList.java:69)
        at 
org.apache.myfaces.trinidad.component.ChildArrayList.add(ChildArrayList.java:33)
        at 
com.sun.faces.facelets.tag.jsf.ComponentSupport.addComponent(ComponentSupport.java:346)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:220)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:120)
        at 
com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:204)
        at 
javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:114)
        at 
com.sun.faces.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:149)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:86)
        at 
javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:91)
        at 
com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:75)
        at 
com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:145)
        at 
com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:715)
        at 
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
        at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
        at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:311)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
        at 
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
        at 
org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
        at 
org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
        at 
org.apache.myfaces.trinidaddemo.webapp.RedirectFilter.doFilter(RedirectFilter.java:97)
        at 
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
        at org.mortbay.jetty.Server.handle(Server.java:324)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:747)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
        at 
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Dec 4, 2009 9:04:34 AM 
org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit 
createResponseWriter
SEVERE: No RenderingContext has been created.


> IllegalStateException in UIComponentBase when trying to add a resource 
> (outputScript) to the body target...
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: TRINIDAD-1648
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1648
>             Project: MyFaces Trinidad
>          Issue Type: New Feature
>          Components: Components
>    Affects Versions: 2.0.0-core
>         Environment: Running Trinidad 2.0.x; with Facelets; no Partial State 
> Saving and using JSF Ajax request rather than the Trinidad PPR mechanism
>            Reporter: Pavitra Subramaniam
>         Attachments: IllegalStateException-II.patch, 
> IllegalStateException.patch
>
>
> 1. I have a simple usecase where I have changed the Trinidad PPR code to use 
> the jsf.ajax. The client postback works ok and the command is processed on 
> the server properly. almost...
> 2. During render response phase though, an <h:outputScript> tag present in 
> the page, gets re-targeted to be under the <body> tag and this causes an 
> IllegalStateException in the following method in UICOmponentBase.java.
> 3. It appears that the JSF RI, throws an ISE when the parent does not contain 
> a child either in its child list or the facets. 
>      * <p>If the specified {...@link UIComponent} has a non-null parent,
>      * remove it as a child or facet (as appropriate) of that parent.
>      * As a result, the <code>parent</code> property will always be
>      * <code>null</code> when this method returns.</p>
>      *
>     private static void eraseParent(UIComponent component)
> 4. To reproduce the problem , 
>  a. download the patch provided. 
>  b. Run the ajaxPPRDemos.jspx. Notice the page comes up fine. also notice the 
> <h:outputScript> used. 
>  c. Click on the 'partial Submit' button. This is wired to use the JSF Ajax 
> mechanism. On the server notice the ISE as mentioned above. 
> 5. from debugging it appears to be a weird bug in the RI implementation. 
>  a. Before adding the component (in this case the h:outputScript) to the 
> current parent, it does doPostAddProcessing() which publishes a 
> PostAddToViewEvent. It calls the listener registered for the SystemEvent (as 
> one is available for the source component, 
> ComponentSystemEventListenerAdapter). 
>  b. The event listener gets called, which eventually calls the 
> ScriptStyleBaseRenderer, which determines that the component actually needs 
> to be added to the facets in the body and then adds it. It's all fine until 
> here.
> c. But when the component is being added to the facet, it's also erased from 
> its current parent. When it can't find the component in the current parent it 
> throws an ISE. But we got here in the first place because we were trying to 
> add it to the parent. Anyways, the ISE in UIComponentBase.eraseParent() seems 
> like a bug to me.

-- 
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