Fixed as https://issues.apache.org/jira/browse/TAPESTRY-2220
On Sun, Mar 2, 2008 at 11:12 AM, Howard Lewis Ship <[EMAIL PROTECTED]> wrote: > I'm checking into it right now. I'll add a JIRA issue and fix it as > necessary. > > > > On Fri, Feb 29, 2008 at 7:29 AM, Filip S. Adamsen <[EMAIL PROTECTED]> wrote: > > Is anyone else noticing this behavior? I still get it with today's > snapshot. > > > > -Filip > > > > Filip S. Adamsen skrev: > > > > > > > Have a look for yourself, I've created a small application that points > > > out the error. Although the generated URLs look fine, I agree, the event > > > handler methods aFre not called, except in the root folder where > > > everything somehow works fine. > > > > > > http://fsadev.com/files/indextest.zip > > > > > > -Filip > > > > > > Howard Lewis Ship skrev: > > >> On Wed, Feb 27, 2008 at 4:59 PM, Filip S. Adamsen <[EMAIL PROTECTED]> > wrote: > > >>> Okay, here are the page classes: > > >>> > > >>> > > >>> com.fsadev.kamino.pages.news.NewsIndex > > >>> com.fsadev.kamino.pages.news.NewsRead > > >>> com.fsadev.kamino.pages.forum.ForumIndex > > >>> > > >>> NewsIndex has an onActivate(int) method and NewsRead has an > > >>> onActivate() > > >>> and onActivate(String) method. ForumIndex doesn't have any onActivate > > >>> methods at all. > > >>> > > >>> When viewing /news/1, mapped to NewsIndex at the URL > > >>> http://localhost:8080/kaminoweb/news/1, I attempt to log in through a > > >>> form that submits to > > >>> http://localhost:8080/kaminoweb/news/index.layout.quicklogin. This > > >>> fails > > >> > > >> That looks good to me; page "new/Index" component "layout.quicklogin". > > >> > > >> Where does "read.comment.add" come into play? > > >> > > >>> with the aforementioned NumberFormatException. Now, if I go to > another > > >>> page, say, /forum mapped to ForumIndex at the URL > > >>> http://localhost:8080/kaminoweb/forum I can log in fine through > > >>> http://localhost:8080/kaminoweb/forum/index.layout.quicklogin. > However, > > >>> I can't log out from this page via > > >>> http://localhost:8080/kaminoweb/forum/index.layout.logout. This fails > > >>> with no exception or anything. > > >>> > > >>> Now that I'm logged in I can go to /news/read mapped to NewsRead at > the > > >>> URL http://localhost:8080/kaminoweb/news/read/test-1. This shows the > > >>> news item with the id 1. When attempting to submit a comment via > > >>> http://localhost:8080/kaminoweb/news/read.comment.add I get another > > >>> NumberFormatException. > > >>> > > >>> So, it appears that what should really be a component event URL is > > >>> interpreted as activation context for the pages in question... > > >>> > > >>> -Filip > > >>> > > >>> Howard Lewis Ship skrev: > > >>> > > >>> > > >>>> It would be useful to know about your various class names. The more > > >>> > the merrier. Also the exact URLs that are failing. > > >>> > > > >>> > > > >>> > > > >>> > On Wed, Feb 27, 2008 at 3:51 PM, Filip S. Adamsen <[EMAIL > PROTECTED]> > > >>> wrote: > > >>> >> Hi, > > >>> >> > > >>> >> I'm seeing weird NumberFormatExceptions on component actions > > >>> from pages > > >>> >> in folders with index pages. It looks like Tapestry tries to > > >>> pass the > > >>> >> page and nested component id of the component event to the index > > >>> page if > > >>> >> it accepts an activation context. > > >>> >> > > >>> >> Scenario: I have a news folder in com.fsadev.kamino.pages. It > > >>> contains a > > >>> >> NewsIndex and a NewsRead page. NewsIndex accepts an optional > > >>> pageNumber: > > >>> >> > > >>> >> public class NewsIndex { > > >>> >> ... > > >>> >> Object onActivate(int pageNumber) { > > >>> >> ... > > >>> >> } > > >>> >> ... > > >>> >> } > > >>> >> > > >>> >> NewsRead has a form that submits a comment. When the comment is > > >>> >> submitted the following exception occurs: > > >>> >> > > >>> >> [ERROR] RequestExceptionHandler Processing of request failed with > > >>> >> uncaught exception: Exception in method > > >>> >> com.fsadev.kamino.pages.news.NewsIndex.onActivate(int) (at > > >>> >> NewsIndex.java:58), parameter #1: Coercion of read.comment.add > > >>> to type > > >>> >> java.lang.Integer (via String --> Long, Long --> Integer) > > >>> failed: For > > >>> >> input string: "read.comment.add" > > >>> >> org.apache.tapestry.runtime.ComponentEventException: Exception > > >>> in method > > >>> >> com.fsadev.kamino.pages.news.NewsIndex.onActivate(int) (at > > >>> >> NewsIndex.java:58), parameter #1: Coercion of read.comment.add > > >>> to type > > >>> >> java.lang.Integer (via String --> Long, Long --> Integer) > > >>> failed: For > > >>> >> input string: "read.comment.add" > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1021) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:52) > > >>> > > >>> >> at > > >>> >> > > >>> > com.fsadev.kamino.services.auth.AccessRequestFilter.handle(AccessRequestFilter.java:55) > > >>> > > >>> >> at > > >>> >> > > >>> > $PageRenderRequestHandler_1185d36d0cc.handle($PageRenderRequestHandler_1185d36d0cc.java) > > >>> > > >>> >> at > > >>> >> > > >>> > com.fsadev.tapestry.hibernate.services.TransactionRequestFilter.handle(TransactionRequestFilter.java:45) > > >>> > > >>> >> at > > >>> >> > > >>> > $PageRenderRequestHandler_1185d36d0cc.handle($PageRenderRequestHandler_1185d36d0cc.java) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.services.TapestryModule$29.handle(TapestryModule.java:1594) > > >>> > > >>> >> at > > >>> >> > > >>> > $PageRenderRequestHandler_1185d36d0cc.handle($PageRenderRequestHandler_1185d36d0cc.java) > > >>> > > >>> >> at > > >>> >> > > >>> > $PageRenderRequestHandler_1185d36d0c1.handle($PageRenderRequestHandler_1185d36d0c1.java) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:85) > > >>> > > >>> >> at > > >>> $Dispatcher_1185d36d0c4.dispatch($Dispatcher_1185d36d0c4.java) > > >>> >> at > > >>> $Dispatcher_1185d36d0b7.dispatch($Dispatcher_1185d36d0b7.java) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:918) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43) > > >>> > > >>> >> at > > >>> $RequestHandler_1185d36d0b8.service($RequestHandler_1185d36d0b8.java) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:534) > > >>> > > >>> >> at > > >>> $RequestHandler_1185d36d0b8.service($RequestHandler_1185d36d0b8.java) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:509) > > >>> > > >>> >> at > > >>> $RequestHandler_1185d36d0b8.service($RequestHandler_1185d36d0b8.java) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79) > > >>> > > >>> >> at > > >>> $RequestHandler_1185d36d0b8.service($RequestHandler_1185d36d0b8.java) > > >>> >> at > > >>> >> > > >>> > com.fsadev.tapestry.utilities.services.TapestryUtilitiesModule$1.service(TapestryUtilitiesModule.java:56) > > >>> > > >>> >> at > > >>> $RequestHandler_1185d36d0b8.service($RequestHandler_1185d36d0b8.java) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) > > >>> > > >>> >> at > > >>> $RequestHandler_1185d36d0b8.service($RequestHandler_1185d36d0b8.java) > > >>> >> at > > >>> $RequestHandler_1185d36d0b2.service($RequestHandler_1185d36d0b2.java) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:898) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:43) > > >>> > > >>> >> at > > >>> >> > > >>> > $HttpServletRequestHandler_1185d36d0b3.service($HttpServletRequestHandler_1185d36d0b3.java) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > > >>> > > >>> >> at > > >>> >> > > >>> > $HttpServletRequestFilter_1185d36d0b1.service($HttpServletRequestFilter_1185d36d0b1.java) > > >>> > > >>> >> at > > >>> >> > > >>> > $HttpServletRequestHandler_1185d36d0b3.service($HttpServletRequestHandler_1185d36d0b3.java) > > >>> > > >>> >> at > > >>> >> > > >>> > $HttpServletRequestHandler_1185d36d0af.service($HttpServletRequestHandler_1185d36d0af.java) > > >>> > > >>> >> at > > >>> org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164) > > >>> >> at > > >>> >> > > >>> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > >>> > > >>> >> at > > >>> >> > > >>> > com.fsadev.tapestry.utilities.StripUrlSessionIdFilter.doFilter(StripUrlSessionIdFilter.java:38) > > >>> > > >>> >> at > > >>> >> > > >>> > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) > > >>> > > >>> >> at > > >>> > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) > > >>> >> 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:712) > > >>> >> at > > >>> org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) > > >>> >> at > > >>> >> > > >>> > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211) > > >>> > > >>> >> at > > >>> >> > > >>> > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > > >>> > > >>> >> at > > >>> > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) > > >>> >> at org.mortbay.jetty.Server.handle(Server.java:313) > > >>> >> at > > >>> > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) > > >>> >> at > > >>> >> > > >>> > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844) > > >>> > > >>> >> at > > >>> org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644) > > >>> >> at > > >>> org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) > > >>> >> at > > >>> org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) > > >>> >> at > > >>> >> > > >>> > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) > > >>> > > >>> >> at > > >>> >> > > >>> > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442) > > >>> > > >>> >> Caused by: java.lang.IllegalArgumentException: Exception in > method > > >>> >> com.fsadev.kamino.pages.news.NewsIndex.onActivate(int) (at > > >>> >> NewsIndex.java:58), parameter #1: Coercion of read.comment.add > > >>> to type > > >>> >> java.lang.Integer (via String --> Long, Long --> Integer) > > >>> failed: For > > >>> >> input string: "read.comment.add" > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.ComponentEventImpl.coerceContext(ComponentEventImpl.java:72) > > >>> > > >>> >> at > > >>> >> > > >>> > com.fsadev.kamino.pages.news.NewsIndex.dispatchComponentEvent(NewsIndex.java) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) > > >>> > > >>> >> ... 55 more > > >>> >> Caused by: java.lang.RuntimeException: Coercion of > > >>> read.comment.add to > > >>> >> type java.lang.Integer (via String --> Long, Long --> Integer) > > >>> failed: > > >>> >> For input string: "read.comment.add" > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.ioc.internal.services.TypeCoercerImpl.coerce(TypeCoercerImpl.java:130) > > >>> > > >>> >> at > > >>> $TypeCoercer_1185d36d08b.coerce($TypeCoercer_1185d36d08b.java) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.TypeCoercedValueEncoderFactory$1.toValue(TypeCoercedValueEncoderFactory.java:45) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.ContextValueEncoderImpl.toValue(ContextValueEncoderImpl.java:47) > > >>> > > >>> >> at > > >>> >> > > >>> > $ContextValueEncoder_1185d36d0c3.toValue($ContextValueEncoder_1185d36d0c3.java) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.URLEventContext.get(URLEventContext.java:44) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.internal.services.ComponentEventImpl.coerceContext(ComponentEventImpl.java:67) > > >>> > > >>> >> ... 58 more > > >>> >> Caused by: java.lang.NumberFormatException: For input string: > > >>> >> "read.comment.add" > > >>> >> at > > >>> >> > > >>> > java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) > > >>> > > >>> >> at java.lang.Long.parseLong(Long.java:403) > > >>> >> at java.lang.Long.<init>(Long.java:671) > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.ioc.services.TapestryIOCModule$7.coerce(TapestryIOCModule.java:159) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.ioc.services.TapestryIOCModule$7.coerce(TapestryIOCModule.java:157) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.ioc.services.CoercionTuple$CoercionWrapper.coerce(CoercionTuple.java:54) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.ioc.internal.services.CompoundCoercion.coerce(CompoundCoercion.java:46) > > >>> > > >>> >> at > > >>> >> > > >>> > org.apache.tapestry.ioc.internal.services.TypeCoercerImpl.coerce(TypeCoercerImpl.java:126) > > >>> > > >>> >> ... 64 more > > >>> >> > > >>> >> Something similar happens on index pages that do not accept any > > >>> >> activation context. In this case the component event isn't even > > >>> triggered... > > >>> >> > > >>> >> Am I doing something wrong here or have I found a bug? > > >>> >> > > >>> >> -Filip > > >>> >> > > >>> >> > > >>> --------------------------------------------------------------------- > > >>> >> To unsubscribe, e-mail: [EMAIL PROTECTED] > > >>> >> For additional commands, e-mail: [EMAIL PROTECTED] > > >>> >> > > >>> >> > > >>> > > > >>> > > > >>> > > > >>> > > >>> --------------------------------------------------------------------- > > >>> To unsubscribe, e-mail: [EMAIL PROTECTED] > > >>> For additional commands, e-mail: [EMAIL PROTECTED] > > >>> > > >>> > > >> > > >> > > >> > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > -- > Howard M. Lewis Ship > > Creator Apache Tapestry and Apache HiveMind > -- Howard M. Lewis Ship Creator Apache Tapestry and Apache HiveMind --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
