T5: Activate + Passivate + Validation
Hi, I'm using T5, and I have a page that uses activate and passivate events to store a primary key (as explained at http://tapestry.apache.org/tapestry5/tapestry-core/guide/event.html). I'm having some trouble, though, when I do custom validation in my onSuccessFromForm( ) method. If the validation fails, I return null so that the user comes back to the same page. However, the primary key has been lost, and I get the following error: * java.lang.IllegalArgumentException Method com.of.pages.AbstractJurisdictionPage.onActivate( java.lang.String) has more parameters than there are context values for this component event. Stack trace o org.apache.tapestry.internal.services.ComponentEventImpl.coerceContext( ComponentEventImpl.java:92) o com.of.pages.AbstractJurisdictionPage.handleComponentEvent( AbstractJurisdictionPage.java) o com.of.pages.Search.handleComponentEvent(Search.java) o org.apache.tapestry.internal.structure.ComponentPageElementImpl.handleEvent( ComponentPageElementImpl.java:900) o org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent (ComponentPageElementImpl.java:1009) o org.apache.tapestry.internal.services.PageLinkHandlerImpl.handle( PageLinkHandlerImpl.java:49) o org.apache.tapestry.internal.services.PageLinkHandlerImpl.handle( PageLinkHandlerImpl.java:39) o $PageLinkHandler_110d8085cb5.handle($PageLinkHandler_110d8085cb5.java) o $PageLinkHandler_110d8085c6a.handle($PageLinkHandler_110d8085c6a.java) o org.apache.tapestry.internal.services.PageRenderDispatcher.dispatch( PageRenderDispatcher.java:88) o $Dispatcher_110d8085c6c.dispatch($Dispatcher_110d8085c6c.java) o $Dispatcher_110d8085c6d.dispatch($Dispatcher_110d8085c6d.java) o $Dispatcher_110d8085c59.dispatch($Dispatcher_110d8085c59.java) o org.apache.tapestry.services.TapestryModule$5.service( TapestryModule.java:418) o org.apache.tapestry.services.TapestryModule$6.service( TapestryModule.java:451) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o org.apache.tapestry.internal.services.StaticFilesFilter.service( StaticFilesFilter.java:49) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o com.of.services.AppModule$1.service(AppModule.java:44) o $RequestFilter_110d8085c56.service($RequestFilter_110d8085c56.java) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o org.apache.tapestry.internal.services.LocalizationFilter.service( LocalizationFilter.java:43) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke( CheckForUpdatesFilter.java:91) o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke( CheckForUpdatesFilter.java:82) o org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead( ConcurrentBarrier.java:77) o org.apache.tapestry.internal.services.CheckForUpdatesFilter.service( CheckForUpdatesFilter.java:104) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o $RequestHandler_110d8085c5b.service($RequestHandler_110d8085c5b.java) o $RequestHandler_110d8085c51.service($RequestHandler_110d8085c51.java) o org.apache.tapestry.services.TapestryModule$3.service( TapestryModule.java:341) o $HttpServletRequestHandler_110d8085c52.service($HttpServletRequestHandler_110d8085c52.java) o $HttpServletRequestHandler_110d8085c50.service($HttpServletRequestHandler_110d8085c50.java) o org.apache.tapestry.TapestryFilter.doFilter( TapestryFilter.java:114) o org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter( WebApplicationHandler.java:821) o org.mortbay.jetty.servlet.WebApplicationHandler.dispatch( WebApplicationHandler.java:471) o org.mortbay.jetty.servlet.ServletHandler.handle( ServletHandler.java:568) o org.mortbay.http.HttpContext.handle(HttpContext.java:1530) o org.mortbay.jetty.servlet.WebApplicationContext.handle( WebApplicationContext.java:633) o org.mortbay.http.HttpContext.handle(HttpContext.java:1482) o org.mortbay.http.HttpServer.service(HttpServer.java:909) o org.mortbay.http.HttpConnection.service(HttpConnection.java :820) o org.mortbay.http.HttpConnection.handleNext( HttpConnection.java:986) o org.mortbay.http.HttpConnection.handle(HttpConnection.java :837) o org.mortbay.http.SocketListener.handleConnection( SocketListener.java:245) o org.mortbay.util.ThreadedServer.handle(ThreadedServer.java :357)
Re: T5: Activate + Passivate + Validation
That's something I need to work out; the ActionLink and Form components have context, but so do the pages (via the passivate events). Really, the action event URLs should reflect both when both contexts are present. In that situation, the page context will be shifted into a query parameter. On 2/18/07, DJ Gredler [EMAIL PROTECTED] wrote: Hi, I'm using T5, and I have a page that uses activate and passivate events to store a primary key (as explained at http://tapestry.apache.org/tapestry5/tapestry-core/guide/event.html). I'm having some trouble, though, when I do custom validation in my onSuccessFromForm( ) method. If the validation fails, I return null so that the user comes back to the same page. However, the primary key has been lost, and I get the following error: * java.lang.IllegalArgumentException Method com.of.pages.AbstractJurisdictionPage.onActivate( java.lang.String) has more parameters than there are context values for this component event. Stack trace o org.apache.tapestry.internal.services.ComponentEventImpl.coerceContext( ComponentEventImpl.java:92) o com.of.pages.AbstractJurisdictionPage.handleComponentEvent( AbstractJurisdictionPage.java) o com.of.pages.Search.handleComponentEvent(Search.java) o org.apache.tapestry.internal.structure.ComponentPageElementImpl.handleEvent( ComponentPageElementImpl.java:900) o org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent (ComponentPageElementImpl.java:1009) o org.apache.tapestry.internal.services.PageLinkHandlerImpl.handle( PageLinkHandlerImpl.java:49) o org.apache.tapestry.internal.services.PageLinkHandlerImpl.handle( PageLinkHandlerImpl.java:39) o $PageLinkHandler_110d8085cb5.handle($PageLinkHandler_110d8085cb5.java) o $PageLinkHandler_110d8085c6a.handle($PageLinkHandler_110d8085c6a.java) o org.apache.tapestry.internal.services.PageRenderDispatcher.dispatch( PageRenderDispatcher.java:88) o $Dispatcher_110d8085c6c.dispatch($Dispatcher_110d8085c6c.java) o $Dispatcher_110d8085c6d.dispatch($Dispatcher_110d8085c6d.java) o $Dispatcher_110d8085c59.dispatch($Dispatcher_110d8085c59.java) o org.apache.tapestry.services.TapestryModule$5.service( TapestryModule.java:418) o org.apache.tapestry.services.TapestryModule$6.service( TapestryModule.java:451) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o org.apache.tapestry.internal.services.StaticFilesFilter.service( StaticFilesFilter.java:49) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o com.of.services.AppModule$1.service(AppModule.java:44) o $RequestFilter_110d8085c56.service($RequestFilter_110d8085c56.java) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o org.apache.tapestry.internal.services.LocalizationFilter.service( LocalizationFilter.java:43) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke( CheckForUpdatesFilter.java:91) o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke( CheckForUpdatesFilter.java:82) o org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead( ConcurrentBarrier.java:77) o org.apache.tapestry.internal.services.CheckForUpdatesFilter.service( CheckForUpdatesFilter.java:104) o $RequestHandler_110d8085c5a.service($RequestHandler_110d8085c5a.java) o $RequestHandler_110d8085c5b.service($RequestHandler_110d8085c5b.java) o $RequestHandler_110d8085c51.service($RequestHandler_110d8085c51.java) o org.apache.tapestry.services.TapestryModule$3.service( TapestryModule.java:341) o $HttpServletRequestHandler_110d8085c52.service($HttpServletRequestHandler_110d8085c52.java) o $HttpServletRequestHandler_110d8085c50.service($HttpServletRequestHandler_110d8085c50.java) o org.apache.tapestry.TapestryFilter.doFilter( TapestryFilter.java:114) o org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter( WebApplicationHandler.java:821) o org.mortbay.jetty.servlet.WebApplicationHandler.dispatch( WebApplicationHandler.java:471) o org.mortbay.jetty.servlet.ServletHandler.handle( ServletHandler.java:568) o org.mortbay.http.HttpContext.handle(HttpContext.java:1530) o org.mortbay.jetty.servlet.WebApplicationContext.handle( WebApplicationContext.java:633) o org.mortbay.http.HttpContext.handle(HttpContext.java:1482) o org.mortbay.http.HttpServer.service(HttpServer.java:909) o