Awesome, thanks a lot Howard! :)

-Filip

Howard Lewis Ship skrev:
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





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to