[ 
https://issues.apache.org/jira/browse/WICKET-4285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13164480#comment-13164480
 ] 

Ortwin Glück commented on WICKET-4285:
--------------------------------------

In 1.5 it's even worse. AsynchronousDataStore.destroy() does an unconditional 
wait() on the destroy object. The thread may have already exited, and there is 
no way to detect that.
(Effective Java item 50: never invoke wait() outside a loop, was written 
exactly for this reason).

Why this trickery with wait/notify if Threads already have isAlive() and join() 
methods? I suggest to simply keep a reference to the thread. Patch imminent.
                
> PageSavingThread.stop() blocks forever
> --------------------------------------
>
>                 Key: WICKET-4285
>                 URL: https://issues.apache.org/jira/browse/WICKET-4285
>             Project: Wicket
>          Issue Type: Improvement
>          Components: wicket
>    Affects Versions: 1.4.19
>            Reporter: Ortwin Glück
>              Labels: patch
>         Attachments: patch.diff
>
>
> The PageSavingThread may exit without nulling the stop flag. For example when 
> an OutOfMemoryError or any other runtime exception is thrown in the run 
> method.
> Properly set the flag in a finally clause.
> Is this class still present in 1.5?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to