Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
5.0.15
-
None
-
None
Description
I have a page with 2 ActionLinks - the first link updates the whole page; the second link specifies a zone.
If you click on the two links in quick succession then an exception is thrown. Alternatively, just Reload the page and click on the second link before the page has finished reloading and you'll get the same exception.
Here's the page, with source: http://202.177.217.122:8080/jumpstart/examples/javascript/ajax
Here's the exception:
A component event handler method returned the value org.apache.tapestry5.internal.structure.BlockImpl@80937b. Return type org.apache.tapestry5.internal.structure.BlockImpl can not be handled. Configured return types are java.lang.Class, java.lang.String, java.net.URL, org.apache.tapestry5.Link, org.apache.tapestry5.StreamResponse, org.apache.tapestry5.runtime.Component.
I understand that Tapestry doesn't hook up zones etc. until the DOM is loaded. It's also been suggested to "check Request#isXhr in your event handler to see if it's an AJAX request - if it's not you can't return a Block, so you'll have to figure out another way to do what needs to be done."
However, since this symptom will afflict every AJAX ActionLink out-of-the-box, it would be nice if the framework handled it so we don't have to code around it.
Geoff