diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/RSEPersistenceManager.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/RSEPersistenceManager.java index b4842139591..c2844671357 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/RSEPersistenceManager.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/RSEPersistenceManager.java @@ -244,7 +244,9 @@ public class RSEPersistenceManager implements IRSEPersistenceManager { for (int i = 0; i < ids.length && isComplete; i++) { String id = ids[i]; ProviderRecord pr = getProviderRecord(id); - isComplete = pr.isAutostart() && pr.isRestored(); + if (pr.isAutostart()) { + isComplete = isComplete && pr.isRestored(); + } } return isComplete; } diff --git a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/persistence/PersistenceTest.java b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/persistence/PersistenceTest.java index a5011df2931..fa6e0b70b9a 100644 --- a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/persistence/PersistenceTest.java +++ b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/persistence/PersistenceTest.java @@ -50,6 +50,19 @@ public class PersistenceTest extends RSECoreTestCase { super.tearDown(); } + public void testPersistenceManagerStartup() { + IRSEPersistenceManager m = RSECorePlugin.getThePersistenceManager(); + for (int i = 0; i < 5; i++) { + if (m.isRestoreComplete()) break; + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + assertTrue("Restore not complete", m.isRestoreComplete()); + } + public void testProfilePersistence() { /* * Set up this particular test.