diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java index 6cf5974826..51d3c4ae42 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Repository.java @@ -2309,6 +2309,13 @@ public class Repository extends Container<Object> implements InternalRepository, for (InternalCDOPackageUnit packageUnit : packageUnits) { packageRegistry.putPackageUnit(packageUnit); + + // Bug 521029: Initialize EPackages early from the main thread to avoid multi-threading issues. + // This could be made optional at some point. + for (InternalCDOPackageInfo packageInfo : packageUnit.getPackageInfos()) + { + packageInfo.getEPackage(true); // Trigger initialization. + } } } finally |