From ceddc7a49bf909c2392dade10e8c796756ffd3fd Mon Sep 17 00:00:00 2001 From: Martin Oberhuber < martin.oberhuber@windriver.com> Date: Thu, 9 Aug 2007 10:05:02 +0000 Subject: [PATCH] [197025][197167] Improved wait for model complete --- .../rse/internal/efs/RSEFileStoreImpl.java | 60 ++++++++++--------- 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.efs/src/org/eclipse/rse/internal/efs/RSEFileStoreImpl.java b/rse/plugins/org.eclipse.rse.efs/src/org/eclipse/rse/internal/efs/RSEFileStoreImpl.java index 35c37cddf01..a0e06d9c969 100644 --- a/rse/plugins/org.eclipse.rse.efs/src/org/eclipse/rse/internal/efs/RSEFileStoreImpl.java +++ b/rse/plugins/org.eclipse.rse.efs/src/org/eclipse/rse/internal/efs/RSEFileStoreImpl.java @@ -20,6 +20,7 @@ * Martin Oberhuber (Wind River) - [186773] split ISystemRegistryUI from ISystemRegistry * Martin Oberhuber (Wind River) - [188360] renamed from plugin org.eclipse.rse.eclipse.filesystem * Martin Oberhuber (Wind River) - [191581] clear local IRemoteFile handle cache when modifying remote + * Martin Oberhuber (Wind River) - [197025][197167] Improved wait for model complete ********************************************************************************/ package org.eclipse.rse.internal.efs; @@ -38,6 +39,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; import org.eclipse.rse.core.RSECorePlugin; import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.ISystemRegistry; @@ -52,6 +54,7 @@ import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystem; import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFileSubSystemConfiguration; import org.eclipse.rse.subsystems.files.core.subsystems.RemoteFileContext; +import org.eclipse.rse.ui.RSEUIPlugin; /** * Implementation of IFileStore for RSE. @@ -65,7 +68,10 @@ public class RSEFileStoreImpl extends FileStore //cached IRemoteFile object: an Object to avoid early class loading private transient IRemoteFile _remoteFile; - + + //markup to know that RSE has been initialized + private static boolean _initialized; + /** * Constructor to use if the parent file store is known. * @param parent the parent file store. @@ -106,6 +112,27 @@ public class RSEFileStoreImpl extends FileStore return _parent.toURI(); } + /** + * Wait for RSE persistence to fully initialize + */ + private static void waitForRSEInit() { + if (!_initialized) { + //Force activating RSEUIPlugin, which kicks off InitRSEJob + RSEUIPlugin.getDefault(); + Job[] jobs = Job.getJobManager().find(null); + for (int i=0; i