Updated Branches: refs/heads/master 66bfc8851 -> 68a6f64b4
WICKET-4820 Race condition in ResourceSettings: getResourceWatcher() is not thread safe Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/68a6f64b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/68a6f64b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/68a6f64b Branch: refs/heads/master Commit: 68a6f64b4269f517fd16e1b7412c364d4438c0e6 Parents: 66bfc88 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Wed Oct 17 17:35:53 2012 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Wed Oct 17 17:35:53 2012 +0200 ---------------------------------------------------------------------- .../wicket/settings/def/ResourceSettings.java | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/68a6f64b/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java index b9789b7..3b9b9b7 100644 --- a/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java +++ b/wicket-core/src/main/java/org/apache/wicket/settings/def/ResourceSettings.java @@ -285,10 +285,16 @@ public class ResourceSettings implements IResourceSettings { if (resourceWatcher == null && start) { - final Duration pollFrequency = getResourcePollFrequency(); - if (pollFrequency != null) + synchronized (this) { - resourceWatcher = new ModificationWatcher(pollFrequency); + if (resourceWatcher == null) + { + final Duration pollFrequency = getResourcePollFrequency(); + if (pollFrequency != null) + { + resourceWatcher = new ModificationWatcher(pollFrequency); + } + } } } return resourceWatcher;
