[ 
https://issues.apache.org/jira/browse/WICKET-5146?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cedric Gatay updated WICKET-5146:
---------------------------------

    Attachment: fix-WICKET-5146-2.patch

After testing against your test application, it appears that one need to call 
internalDestroy() as you stated in order to properly unregister the application 
from the static application hashmap.

The attached fix-WICKET-5146-2.patch file include this update wrapped inside 
another try / catch block.
                
> Application not destroyed if WicketFilter#init() fails
> ------------------------------------------------------
>
>                 Key: WICKET-5146
>                 URL: https://issues.apache.org/jira/browse/WICKET-5146
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 6.7.0
>            Reporter: bernard
>         Attachments: fix-WICKET-5146-2.patch, testcase.zip
>
>
> WicketFilter calls Application#initApplication() which calls 
> Application#init().
> In case of Exception thrown in the application's init() method, there is no 
> cleanup in WicketFilter's finally block.
> The result of this is, in case where Wicket is in the application server's 
> libraries (not deployed with the war file), that the application cannot be 
> re-deployed withhout re-starting the application server.
> That is because Application#setName() crashes with 
> IllegalStateException("Application name can only be set once.").
> In Application, private static final Map<String, Application> 
> applicationKeyToApplication holds a reference to the crashed instance after 
> the application is undeployed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to