I found in SeamPhaseListener class,
at the beginning of beforePhase(), it calls
Lifecycle.setPhaseId(event.getPhaseId());
and then at the end of the method, it calls Lifecycle.setPhaseId(null);

Once I extend the SeamPhaseListener class and override the method like this

public class PatchShaleSeamPhaseListener extends SeamPhaseListener {

      @Override
      public void afterPhase(PhaseEvent p_event) {
            super.afterPhase(p_event);
            //Patch for Shale Remoting error
            Lifecycle.setPhaseId(p_event.getPhaseId());
      }
}

It fixed the NPE, and all my custom MethodBindingProcessors are working
again, but I am not sure what are the side-affects on Seam now...  I will
ask Gavin about this.




Hmm ... Gavin's comment seems more about using the Ajax support in MyFaces
(indirectly, via the InputSuggestAjax) component, not about using Seam with
Shale.  I presume you are not using those components?

I'll have to look into this, but after tomorrow (I'm doing two sessions
about Shale at ApacheCon).

Craig


Thanks,
> Bill
>
>
>
>              "Craig
>              McClanahan"
>              <[EMAIL PROTECTED]
To
>              org>                      user@shale.apache.org
>              Sent by:
cc
>              [EMAIL PROTECTED]
>              m
Subject
>                                        Re: shale remoting does not with
>                                        with jboss seam
>              10/10/2006 05:16
>              PM
>
>
>              Please respond to
>              [EMAIL PROTECTED]
>                    .org
>
>
>
>
>
>
> On 10/10/06, William Huang <[EMAIL PROTECTED]> wrote:
> >
> >
> > Anyone using shale remoting such as method binding processor along with
> > jboss seam?
>
>
> Which version of MyFaces are you using?  The "caused by" part of this
> exception (cannot get a value for #{param.id}) reminds me of an issue
with
> early versions of MyFaces, where it would throw an exception on this
> expression if there was no actual "id" request parameter.  That might
> still
> be an issue with the version of MyFaces packaged inside of the JBoss app
> server, although it's been addressed in later standalone versions.
>
> Craig
>
>
> Getting this error:
> > javax.faces.el.EvaluationException: Exception while invoking expression
> > #{myBean.download}
> >         at
> >
>
org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:165)
> >         at
> > org.apache.shale.remoting.impl.MethodBindingProcessor.process(
> > MethodBindingProcessor.java:74)
> >         at
> >
> >
>
>
com.intralinks.web.component.navigation.download.DownloadActionProcessor.process


>
> > (DownloadActionProcessor.java:24)
> >         at
> > org.apache.shale.remoting.faces.RemotingPhaseListener.afterPhase(
> > RemotingPhaseListener.java:102)
> >         at
> >
> >
>
>
org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter
> > (PhaseListenerManager.java:89)
> >         at
> > org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(
> LifecycleImpl.java
> > :181)
> >         at
> > org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java
> :66)
> >         at javax.faces.webapp.FacesServlet.service(FacesServlet.java
> :137)
> >         at
> > weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(
> > StubSecurityHelper.java:225)
> >         at
> > weblogic.servlet.internal.StubSecurityHelper.invokeServlet(
> > StubSecurityHelper.java:127)
> >         at
> > weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java
> > :272)
> >         at
> > weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> > org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(
> > ExtensionsFilter.java:144)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> > org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(
> > BaseXMLFilter.java:65)
> >         at
> > org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(
> BaseFilter.java
> > :226)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> > org.jboss.seam.servlet.SeamExceptionFilter.doFilter(
> > SeamExceptionFilter.java:45)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> >
>
org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java
> > :30)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> > com.intralinks.web.IntralinksContextFilter.doFilter(
> > IntralinksContextFilter.java:53)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> > org.acegisecurity.securechannel.ChannelProcessingFilter.doFilter(
> > ChannelProcessingFilter.java:138)
> >         at
> >
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java
> > :90)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         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.ui.AbstractProcessingFilter.doFilter(
> > AbstractProcessingFilter.java:216)
> >         at
> > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
> > FilterChainProxy.java:274)
> >         at
> > org.acegisecurity.securechannel.ChannelProcessingFilter.doFilter(
> > ChannelProcessingFilter.java:138)
> >         at
> > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
> > FilterChainProxy.java:274)
> >         at
> > org.acegisecurity.captcha.CaptchaValidationProcessingFilter.doFilter(
> > CaptchaValidationProcessingFilter.java:114)
> >         at
> > org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(
> > FilterChainProxy.java:274)
> >         at
> > org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(
> > HttpSessionContextIntegrationFilter.java:195)
> >         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
> > :90)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> > org.apache.shale.faces.ShaleApplicationFilter.doFilter(
> > ShaleApplicationFilter.java:275)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> > weblogic.servlet.internal.RequestEventsFilter.doFilter(
> > RequestEventsFilter.java:26)
> >         at
> > weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java
> > :42)
> >         at
> >
>
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run
> > (WebAppServletContext.java:3151)
> >         at
> > weblogic.security.acl.internal.AuthenticatedSubject.doAs(
> > AuthenticatedSubject.java:321)
> >         at
> > weblogic.security.service.SecurityManager.runAs(SecurityManager.java
> :121)
> >         at
> > weblogic.servlet.internal.WebAppServletContext.securedExecute(
> > WebAppServletContext.java:1973)
> >         at
> > weblogic.servlet.internal.WebAppServletContext.execute(
> > WebAppServletContext.java:1880)
> >         at
> >
weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java
> > :1310)
> >         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
> >         at weblogic.work.ExecuteThread.run(ExecuteThread.java:179)
> > Caused by: javax.faces.el.EvaluationException: Cannot get value for
> > expression '#{param.Id}'
> >         at
> >
>
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:402)
> >         at
> > org.apache.shale.tiger.faces.VariableResolverImpl.property(
> > VariableResolverImpl.java:600)
> >         at
> > org.apache.shale.tiger.faces.VariableResolverImpl.create(
> > VariableResolverImpl.java:245)
> >         at
> > org.apache.shale.tiger.faces.VariableResolverImpl.resolveVariable(
> > VariableResolverImpl.java:192)
> >         at
> > org.apache.shale.faces.ShaleVariableResolver.resolveVariable(
> > ShaleVariableResolver.java:152)
> >         at
> > org.springframework.web.jsf.DelegatingVariableResolver.resolveVariable(
> > DelegatingVariableResolver.java:108)
> >         at
> > org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(
> > LastVariableResolverInChain.java:42)
> >         at
> >
>
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(
> > ValueBindingImpl.java:574)
> >         at org.apache.commons.el.NamedValue.evaluate(NamedValue.java
> :124)
> >         at
> > org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(
> > ValueBindingImpl.java:455)
> >         at
> > org.apache.myfaces.el.MethodBindingImpl.resolveToBaseAndProperty(
> > MethodBindingImpl.java:180)
> >         at
> >
>
org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:114)
> >         ... 55 more
> > Caused by: java.lang.NullPointerException
> >         at
> >
>
org.jboss.seam.contexts.PageContext.getCurrentReadableMap(PageContext.java
> > :62)
> >         at org.jboss.seam.contexts.PageContext.get(PageContext.java:52)
> >         at
> > org.jboss.seam.contexts.Contexts.lookupInStatefulContexts(Contexts.java
> > :125)
> >         at org.jboss.seam.Component.getInstance(Component.java:1245)
> >         at
> > org.jboss.seam.jsf.SeamVariableResolver.resolveVariable(
> > SeamVariableResolver.java:44)
> >         at
> > org.apache.shale.tiger.faces.VariableResolverImpl.resolveVariable(
> > VariableResolverImpl.java:188)
> >         at
> > org.apache.shale.faces.ShaleVariableResolver.resolveVariable(
> > ShaleVariableResolver.java:152)
> >         at
> > org.springframework.web.jsf.DelegatingVariableResolver.resolveVariable(
> > DelegatingVariableResolver.java:108)
> >         at
> > org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(
> > LastVariableResolverInChain.java:42)
> >         at
> >
>
org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(
> > ValueBindingImpl.java:574)
> >         at org.apache.commons.el.NamedValue.evaluate(NamedValue.java
> :124)
> >         at
> > org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:140)
> >         at
> >
>
org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
> >         ... 66 more
> >
> > Thanks,
> > Bill
> >
> > Disclaimer: This electronic mail and any attachments are confidential
> and
> > may be privileged. If you are not the intended recipient, please notify
> the
> > sender immediately by replying to this email, and destroy all copies of
> this
> > email and any attachments. Thank you.
> >
> >
>
> Disclaimer: This electronic mail and any attachments are confidential and
> may be privileged. If you are not the intended recipient, please notify
the
> sender immediately by replying to this email, and destroy all copies of
this
> email and any attachments. Thank you.
>
>

Disclaimer: This electronic mail and any attachments are confidential and
may be privileged. If you are not the intended recipient, please notify the
sender immediately by replying to this email, and destroy all copies of
this email and any attachments. Thank you.


Disclaimer: This electronic mail and any attachments are confidential and may 
be privileged. If you are not the intended recipient, please notify the sender 
immediately by replying to this email, and destroy all copies of this email and 
any attachments. Thank you.

Reply via email to