[
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