[243320] JUnit tests synch issues - not waiting for Jobs to finish
diff --git a/tests/org.eclipse.wst.common.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.common.tests/META-INF/MANIFEST.MF
index a95117c..5490920 100644
--- a/tests/org.eclipse.wst.common.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.common.tests/META-INF/MANIFEST.MF
@@ -29,7 +29,8 @@
org.eclipse.wst.common.tests.collector;visibility:=reexport,
org.eclipse.jem.util,
org.eclipse.wst.common.environment,
- org.eclipse.wst.common.emf
+ org.eclipse.wst.common.emf,
+ org.eclipse.wst.validation;bundle-version="1.2.0"
Eclipse-LazyStart: true
Plugin-Class: org.eclipse.wst.common.tests.CommonTestsPlugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java
index 4fc6fa5..c688ba3 100644
--- a/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java
+++ b/tests/org.eclipse.wst.common.tests/commontests/org/eclipse/wst/common/tests/OperationTestCase.java
@@ -18,11 +18,12 @@
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
import org.eclipse.wst.common.frameworks.internal.datamodel.IWorkspaceRunnableWithStatus;
import org.eclipse.wst.common.internal.emf.resource.RendererFactory;
+import org.eclipse.wst.validation.internal.operations.ValidationBuilder;
/**
@@ -48,6 +49,11 @@
}
public static void deleteAllProjects() {
+ try {
+ waitOnJobs();
+ } catch (InterruptedException e1) {
+
+ }
IWorkspaceRunnableWithStatus workspaceRunnable = new IWorkspaceRunnableWithStatus(null) {
public void run(IProgressMonitor pm) throws CoreException {
try {
@@ -248,11 +254,18 @@
protected void tearDown() throws Exception {
super.tearDown();
// Wait for all validation jobs to end before ending test....
+ waitOnJobs();
+
+ }
+
+ public static void waitOnJobs() throws InterruptedException {
IProject[] projects = ProjectUtility.getAllProjects();
for (int i = 0; i < projects.length; i++) {
IProject project = projects[i];
- Platform.getJobManager().join(project.getName() + VALIDATOR_JOB_FAMILY,null);
+ Job.getJobManager().join(project.getName() + VALIDATOR_JOB_FAMILY,null);
}
-
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_MANUAL_BUILD,null);
+ Job.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD,null);
+ Job.getJobManager().join(ValidationBuilder.FAMILY_VALIDATION_JOB,null);
}
}