1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

BaseUITestCase.waitForIndexer() intermittently throws exception

This commit is contained in:
John Cortell 2012-08-22 15:08:31 -05:00
parent ab22bbda2d
commit 82a89c35ed

View file

@ -125,20 +125,25 @@ public class BaseUITestCase extends BaseTestCase {
if (CCorePlugin.getIndexManager().isIndexerSetupPostponed(CoreModel.getDefault().create(file.getProject())))
continue;
index.acquireReadLock();
try {
IIndexFile[] indexFiles= index.getFiles(IndexLocationFactory.getWorkspaceIFL(file));
for (IIndexFile indexFile : indexFiles) {
if (indexFile != null && indexFile.getTimestamp() >= file.getLocalTimeStamp()) {
return;
index.acquireReadLock();
try {
IIndexFile[] indexFiles= index.getFiles(IndexLocationFactory.getWorkspaceIFL(file));
for (IIndexFile indexFile : indexFiles) {
if (indexFile != null && indexFile.getTimestamp() >= file.getLocalTimeStamp()) {
return;
}
}
} finally {
index.releaseReadLock();
int time= (int) (endTime - System.currentTimeMillis());
if (time > 0) {
CCorePlugin.getIndexManager().joinIndexer(time, npm());
}
}
} finally {
index.releaseReadLock();
int time= (int) (endTime - System.currentTimeMillis());
if (time > 0) {
CCorePlugin.getIndexManager().joinIndexer(time, npm());
}
}
catch (InterruptedException e) {
// index.acquireReadLock() can be interrupted
}
}
throw new Exception("Indexer did not complete in time!");