A Developer should not be able to override getRequestCycleProvider, as this breaks some Functionality in BaseWicketTester, and to find out what goes wrong can be timeconsuming and can cause headaches.
BaseWicketTester does the following:
TestRequestCycleProvider provides the ability to force a certain RequestHandler (for example to Render a page used for BaseWicketTester#startPage,
this ignores the normal Process to resolve a RequestHandler.
If you override Application#getRequestCycleProvider, the Test will fail as Wicket will resolve the last RequestMapper in the Chain which is typically the HomePageMapper.
You Test will fail, and you might have real problems to find out whats going on, as I had last night.
Therefore I strongly recommend to mark #getRequestCycleProvider final. A developer has still the possibility to set a RequestCycleProvider with #setRequestCycleProvider, so we do not lose anything here.
|Field||Original Value||New Value|
|Attachment||0001-WICKET-4114-Mark-getRequestCycleProvider-as-final.patch [ 12498292 ]|
|Fix Version/s||1.6.0 [ 12315431 ]|
|Status||Open [ 1 ]||Resolved [ 5 ]|
|Assignee||Martin Grigorov [ mgrigorov ]|
|Resolution||Fixed [ 1 ]|
|Transition||Time In Source Status||Execution Times||Last Executer||Last Execution Date|
|40d 23h 6m||1||Martin Grigorov||18/Nov/11 10:14|