webtier@glassfish.java.net

Exception with AJAX in latest Snapshot causes render="" failure

From: Lincoln Baxter, III <lincolnbaxter_at_gmail.com>
Date: Wed, 23 Sep 2009 12:38:47 -0400

I noticed a new exception in the latest snapshot:

This appears to occur in a composite component containing an ajax-ified
composite component. When the ajax-ified composite component is used
directly in the page markup (e.g: not nested in another cc,) things work
normally.

Details (in order of event):

     1. Page loads via HTTP GET
     2. Trigger ajax event with attached action listener (embedded in
        composite component)
     3. Action listener fires successfully
     4. ??? EL fails to resolve composite component for re-render -- see
        exception below ???
     5. Page-render never occurs
     6. AJAX events on page no longer function, and cause a page refresh
        instead of AJAX update
     7. Once page has refreshed, ajax events will function until error
        is encountered again.


My Questions:

     1. Why is JSF attempting to use the EL method supplied in my
        actionListener in order to resolve the composite component?
     2. Why do new AJAX calls fail, causing a page-refresh?


Caused by: javax.faces.FacesException: Unable to resolve composite
component from using page using EL expression
'#{storyController.removeValidation(cc.attrs.story,
cc.attrs.validation)}'
        at com.sun.faces.facelets.tag.TagAttributeImpl
$AttributeLookupMethodExpression.invoke(TagAttributeImpl.java:424)
        at
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
        at
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
        at javax.faces.component.UICommand.broadcast(UICommand.java:315)
        at
com.sun.faces.facelets.component.UIRepeat.broadcast(UIRepeat.java:857)
        at
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:774)
        at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:942)
        at
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
        ... 97 more

--
Lincoln Baxter, III
Co-Founder of OcpSoft
Creator of:
PrettyFaces: URL rewriting for JSF
PrettyTime: Java elapsed timestamp formatting