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.