You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Filip S. Adamsen" <fs...@fsadev.com> on 2008/02/28 00:51:12 UTC
Exception on component action in folders with index pages that accepts
activation context
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: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that
accepts activation context
Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
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 <hl...@gmail.com> 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 <fs...@fsadev.com> 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 <fs...@fsadev.com> 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 <fs...@fsadev.com>
>> > >>> 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: dev-unsubscribe@tapestry.apache.org
>> > >>> >> For additional commands, e-mail: dev-help@tapestry.apache.org
>> > >>> >>
>> > >>> >>
>> > >>> >
>> > >>> >
>> > >>> >
>> > >>>
>> > >>> ---------------------------------------------------------------------
>> > >>> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
>> > >>> For additional commands, e-mail: dev-help@tapestry.apache.org
>> > >>>
>> > >>>
>> > >>
>> > >>
>> > >>
>> > >
>> > >
>> > > ---------------------------------------------------------------------
>> > > To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
>> > > For additional commands, e-mail: dev-help@tapestry.apache.org
>> > >
>> > >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
>> > For additional commands, e-mail: dev-help@tapestry.apache.org
>> >
>> >
>>
>>
>>
>>
>>
>> --
>> Howard M. Lewis Ship
>>
>> Creator Apache Tapestry and Apache HiveMind
>>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that accepts activation context
Posted by Howard Lewis Ship <hl...@gmail.com>.
Fixed as https://issues.apache.org/jira/browse/TAPESTRY-2220
On Sun, Mar 2, 2008 at 11:12 AM, Howard Lewis Ship <hl...@gmail.com> 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 <fs...@fsadev.com> 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 <fs...@fsadev.com> 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 <fs...@fsadev.com>
> > >>> 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: dev-unsubscribe@tapestry.apache.org
> > >>> >> For additional commands, e-mail: dev-help@tapestry.apache.org
> > >>> >>
> > >>> >>
> > >>> >
> > >>> >
> > >>> >
> > >>>
> > >>> ---------------------------------------------------------------------
> > >>> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> > >>> For additional commands, e-mail: dev-help@tapestry.apache.org
> > >>>
> > >>>
> > >>
> > >>
> > >>
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> > > For additional commands, e-mail: dev-help@tapestry.apache.org
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: dev-help@tapestry.apache.org
> >
> >
>
>
>
>
>
> --
> Howard M. Lewis Ship
>
> Creator Apache Tapestry and Apache HiveMind
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that accepts activation context
Posted by Howard Lewis Ship <hl...@gmail.com>.
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 <fs...@fsadev.com> 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 are 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 <fs...@fsadev.com> 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 <fs...@fsadev.com>
> >>> 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: dev-unsubscribe@tapestry.apache.org
> >>> >> For additional commands, e-mail: dev-help@tapestry.apache.org
> >>> >>
> >>> >>
> >>> >
> >>> >
> >>> >
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> >>> For additional commands, e-mail: dev-help@tapestry.apache.org
> >>>
> >>>
> >>
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: dev-help@tapestry.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that
accepts activation context
Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
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 are 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 <fs...@fsadev.com> 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 <fs...@fsadev.com>
>>> 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: dev-unsubscribe@tapestry.apache.org
>>> >> For additional commands, e-mail: dev-help@tapestry.apache.org
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: dev-help@tapestry.apache.org
>>>
>>>
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that
accepts activation context
Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
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 are 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 <fs...@fsadev.com> 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 <fs...@fsadev.com> 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: dev-unsubscribe@tapestry.apache.org
>> >> For additional commands, e-mail: dev-help@tapestry.apache.org
>> >>
>> >>
>> >
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: dev-help@tapestry.apache.org
>>
>>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that accepts activation context
Posted by Howard Lewis Ship <hl...@gmail.com>.
On Wed, Feb 27, 2008 at 4:59 PM, Filip S. Adamsen <fs...@fsadev.com> 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 <fs...@fsadev.com> 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: dev-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: dev-help@tapestry.apache.org
> >>
> >>
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that
accepts activation context
Posted by "Filip S. Adamsen" <fs...@fsadev.com>.
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
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 <fs...@fsadev.com> 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: dev-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: dev-help@tapestry.apache.org
>>
>>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org
Re: Exception on component action in folders with index pages that accepts activation context
Posted by Howard Lewis Ship <hl...@gmail.com>.
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 <fs...@fsadev.com> 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: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>
--
Howard M. Lewis Ship
Creator Apache Tapestry and Apache HiveMind
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org