Prevention against locking of deploy directory scanning #115
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Synchronizing on
this
may lead to locking of deploy directory scanning.This happens when custom
QBean
implementation also use synchronization onthis
. ThenQ2.checkModified()
hangs when that customQBean
is locked onthis
.In order to prevent such a case,
QBeanSupport
should use some special object for synchronization.To solve this, I have used a new object:
final Object modifyLock = new Object();
I do not understand why the method
getPersist()
was synchronized butsetPersist()
was not.I think that
setPersist()
sould not be synchronized at all, but I'm not sure.It is proposal only. So please check it.