You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Mark Shead (JIRA)" <ji...@apache.org> on 2010/07/07 16:11:49 UTC
[jira] Created: (TAP5-1202) onActviate called in wrong order
onActviate called in wrong order
--------------------------------
Key: TAP5-1202
URL: https://issues.apache.org/jira/browse/TAP5-1202
Project: Tapestry 5
Issue Type: Bug
Components: tapestry-core
Affects Versions: 5.2
Reporter: Mark Shead
Priority: Minor
http://tapestryjava.blogspot.com/2007/08/handling-direct-urls-in-tapestry-5.html
Quote from Howard:
When a single method is overloaded with different parameters, the order of invocation is fewest parameters to most parameters.
So onActivate() will be invoked before onActivate(String, String).
End Quote
This doesn't appear to be the case. Based on:
void onActivate(Contact contact, Address address) {
System.out.println("Calling onActivate with 2 parameters");
this.contact = contact;
this.address = address;
}
void onActivate(Contact contact) {
System.out.println("Calling onActivate with 1 parameter");
this.contact = contact;
this.address = new Address();
}
produces:
Calling onActivate with 2 parameters
Calling onActivate with 1 parameter
The order described in the blog post would be preferred because it allows you to write multiple versions of onActivate and know that the last one called with be the best match.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (TAP5-1202) onActviate called in wrong order
Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/TAP5-1202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Howard M. Lewis Ship closed TAP5-1202.
--------------------------------------
Assignee: Howard M. Lewis Ship
Resolution: Invalid
I was inaccurate on my blog; the correct order, documented here: http://tapestry.apache.org/tapestry5.2-dev/guide/event.html is by number of parameters, descending.
The most likely place to do this is inside an activate event handler, with the no-args version being called last to do security checks, or to allow for graceful handling of a hacked URL that's missing page activation context, etc.
> onActviate called in wrong order
> --------------------------------
>
> Key: TAP5-1202
> URL: https://issues.apache.org/jira/browse/TAP5-1202
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.2
> Reporter: Mark Shead
> Assignee: Howard M. Lewis Ship
> Priority: Minor
>
> http://tapestryjava.blogspot.com/2007/08/handling-direct-urls-in-tapestry-5.html
> Quote from Howard:
> When a single method is overloaded with different parameters, the order of invocation is fewest parameters to most parameters.
> So onActivate() will be invoked before onActivate(String, String).
> End Quote
> This doesn't appear to be the case. Based on:
> void onActivate(Contact contact, Address address) {
> System.out.println("Calling onActivate with 2 parameters");
> this.contact = contact;
> this.address = address;
> }
>
> void onActivate(Contact contact) {
> System.out.println("Calling onActivate with 1 parameter");
> this.contact = contact;
> this.address = new Address();
> }
> produces:
> Calling onActivate with 2 parameters
> Calling onActivate with 1 parameter
> The order described in the blog post would be preferred because it allows you to write multiple versions of onActivate and know that the last one called with be the best match.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Closed: (TAP5-1202) onActviate called in wrong order
Posted by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/TAP5-1202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Howard M. Lewis Ship closed TAP5-1202.
--------------------------------------
Assignee: Howard M. Lewis Ship
Resolution: Invalid
I was inaccurate on my blog; the correct order, documented here: http://tapestry.apache.org/tapestry5.2-dev/guide/event.html is by number of parameters, descending.
The most likely place to do this is inside an activate event handler, with the no-args version being called last to do security checks, or to allow for graceful handling of a hacked URL that's missing page activation context, etc.
> onActviate called in wrong order
> --------------------------------
>
> Key: TAP5-1202
> URL: https://issues.apache.org/jira/browse/TAP5-1202
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-core
> Affects Versions: 5.2
> Reporter: Mark Shead
> Assignee: Howard M. Lewis Ship
> Priority: Minor
>
> http://tapestryjava.blogspot.com/2007/08/handling-direct-urls-in-tapestry-5.html
> Quote from Howard:
> When a single method is overloaded with different parameters, the order of invocation is fewest parameters to most parameters.
> So onActivate() will be invoked before onActivate(String, String).
> End Quote
> This doesn't appear to be the case. Based on:
> void onActivate(Contact contact, Address address) {
> System.out.println("Calling onActivate with 2 parameters");
> this.contact = contact;
> this.address = address;
> }
>
> void onActivate(Contact contact) {
> System.out.println("Calling onActivate with 1 parameter");
> this.contact = contact;
> this.address = new Address();
> }
> produces:
> Calling onActivate with 2 parameters
> Calling onActivate with 1 parameter
> The order described in the blog post would be preferred because it allows you to write multiple versions of onActivate and know that the last one called with be the best match.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.