tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard M. Lewis Ship (JIRA)" <j...@apache.org>
Subject [jira] Closed: (TAP5-1202) onActviate called in wrong order
Date Wed, 07 Jul 2010 16:00:57 GMT

     [ 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.


Mime
View raw message