In the Commonalities UI tests, in the class MissingBundlesQuickfixTest.xtend, the test fixMissingRuntimeBundle contains a race condition. More specifically, after modifying a plugin project using the asynchronous apply method, it is not waited until the specific marker file is written. Thus, to resolve the issue, apply should be called using a progress monitor and test execution should only continue after the monitor's done method is called. However, as of 13/10/22, the done method is never called due to an internal bug. As such, currently the workaround of waiting 200ms after calling the apply method is applied (in #71). As soon as the bug is resolved by the Eclipse community, the workaround should be replaced by a proper implementation.
An example solution to the problem could look like this
Semaphore semaphore = new Semaphore(0);
pluginProject.apply(new NullProgressMonitor() {
public void done() {
semaphore.release();
}
});
semaphore.acquire();
In the Commonalities UI tests, in the class MissingBundlesQuickfixTest.xtend, the test
fixMissingRuntimeBundle
contains a race condition. More specifically, after modifying a plugin project using the asynchronousapply
method, it is not waited until the specific marker file is written. Thus, to resolve the issue,apply
should be called using a progress monitor and test execution should only continue after the monitor'sdone
method is called. However, as of 13/10/22, thedone
method is never called due to an internal bug. As such, currently the workaround of waiting 200ms after calling theapply
method is applied (in #71). As soon as the bug is resolved by the Eclipse community, the workaround should be replaced by a proper implementation. An example solution to the problem could look like thisThe same workaround was also applied to ProjectQuickfix.xtend.