Affects Version/s: 5.0.15
Fix Version/s: 5.0.16
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 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.
|Transition||Time In Source Status||Execution Times||Last Executer||Last Execution Date|
|58d 6h 35m||1||Howard M. Lewis Ship||05/Nov/08 18:42|
|Fix Version/s||5.0.16 [ 12313427 ]|
|Resolution||Fixed [ 1 ]|
|Status||Open [ 1 ]||Closed [ 6 ]|
|Summary||AJAX ActionLink exception if clicked as page loads||Clicking on a link that updates a zone before the page has fully loaded will result in a full page update and, often, a server-side exception|
|Assignee||Howard M. Lewis Ship [ hlship ]|
|Affects Version/s||5.0.15 [ 12313429 ]|
|Field||Original Value||New Value|
|Component/s||tapestry-core [ 12311285 ]|