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