diff options
author | Andrey Loskutov | 2016-11-29 15:30:21 +0000 |
---|---|---|
committer | Thomas Watson | 2016-11-29 18:28:37 +0000 |
commit | 1d3b01d9c5aed305b8280d281dc165f1b3cd0cb1 (patch) | |
tree | ab822584feb1edb36ed2ffd84badad475e332858 /bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/runtime/DataArea.java | |
parent | 1a0a0068fc8c3997f73bea9d60f7365855291435 (diff) | |
download | rt.equinox.bundles-1d3b01d9c5aed305b8280d281dc165f1b3cd0cb1.tar.gz rt.equinox.bundles-1d3b01d9c5aed305b8280d281dc165f1b3cd0cb1.tar.xz rt.equinox.bundles-1d3b01d9c5aed305b8280d281dc165f1b3cd0cb1.zip |
Bug 507092 - Eclipse fails to start: "An internal error occurred during:Y20161229-1000Y20161223-1030Y20161222-1000Y20161215-1200Y20161208-1000Y20161201-1000S4_7_0_M4I20170102-2000I20170101-2000I20161231-2000I20161230-2000I20161229-2000I20161228-2000I20161227-2000I20161226-2000I20161225-2000I20161224-2000I20161223-2000I20161223-0615I20161222-2000I20161221-2000I20161221-0400I20161220-2000I20161220-0530I20161219-2000I20161219-0145I20161218-2000I20161217-2000I20161216-2000I20161215-2000I20161215-0915I20161215-0830I20161215-0730I20161215-0130I20161214-2000I20161214-1005I20161213-2000I20161213-0600I20161213-0300I20161212-2000I20161211-2000I20161210-2000I20161208-0830I20161208-0730I20161207-2000I20161207-1340I20161207-0800I20161207-0515I20161206-2000I20161206-0800I20161205-2000I20161205-0800I20161204-2000I20161203-2000I20161202-2000I20161201-2000I20161201-0800I20161130-2000I20161129-2330I20161129-2000
"Initializing workspace."
Fixes multiple possible race conditions during initialization of
instance location uncovered by the change in ResourcesPlugin
initialization via commit 8d90fb030df310a974aae5d27d0bc2610c1a14ad.
The original issue from bug 507092 is fixed in
Activator.getInstanceLocation(), see 507092 comment 27. The change in
MetaDataKeeper makes sure every thread uses same DataArea instance, and
the change in DataArea.assertLocationInitialized() makes sure the
critical file I/O operations on the metadata folder aren't executed in
parallel by multiple threads.
Change-Id: I4ce3ec522b9ef1be41143d52dc440668a958fbcd
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
Diffstat (limited to 'bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/runtime/DataArea.java')
-rw-r--r-- | bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/runtime/DataArea.java | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/runtime/DataArea.java b/bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/runtime/DataArea.java index 66d9feee7..3db52a1bc 100644 --- a/bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/runtime/DataArea.java +++ b/bundles/org.eclipse.equinox.common/src/org/eclipse/core/internal/runtime/DataArea.java @@ -39,7 +39,7 @@ public class DataArea { private IPath location; //The location of the instance data private boolean initialized = false; - protected void assertLocationInitialized() throws IllegalStateException { + protected synchronized void assertLocationInitialized() throws IllegalStateException { if (location != null && initialized) return; Activator activator = Activator.getDefault(); |