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 | 32 |
1 files changed, 20 insertions, 12 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 70cb7ba82a..1a3fe4a71b 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 @@ -2308,18 +2308,7 @@ public class Repository extends Container<Object> implements InternalRepository, try { - Collection<InternalCDOPackageUnit> packageUnits = reader.readPackageUnits(); - 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. - } - } + readPackageUnits(reader, packageRegistry); } finally { @@ -2327,6 +2316,25 @@ public class Repository extends Container<Object> implements InternalRepository, } } + public static void readPackageUnits(IStoreAccessor reader, InternalCDOPackageRegistry packageRegistry) + { + Collection<InternalCDOPackageUnit> packageUnits = reader.readPackageUnits(); + 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 (InternalCDOPackageUnit packageUnit : packageUnits) + { + for (InternalCDOPackageInfo packageInfo : packageUnit.getPackageInfos()) + { + packageInfo.getEPackage(true); // Trigger initialization. + } + } + } + protected void setPostActivateState() { setState(State.ONLINE); |