Skip to content

Commit 2af6dbc

Browse files
committed
bounce IndexParallelizer in doIndexerExecution()
1 parent 378387f commit 2af6dbc

File tree

1 file changed

+49
-50
lines changed
  • opengrok-indexer/src/main/java/org/opengrok/indexer/index

1 file changed

+49
-50
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/index/Indexer.java

Lines changed: 49 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -408,8 +408,6 @@ public static void main(String[] argv) {
408408
if (webappURI != null && subFiles.isEmpty()) {
409409
getInstance().sendToConfigHost(env, webappURI);
410410
}
411-
412-
env.getIndexerParallelizer().bounce();
413411
} catch (ParseException e) {
414412
System.err.println("** " + e.getMessage());
415413
System.exit(1);
@@ -1129,65 +1127,66 @@ public void doIndexerExecution(List<String> subFiles, IndexChangedListener progr
11291127
LOGGER.info("Starting indexing");
11301128

11311129
RuntimeEnvironment env = RuntimeEnvironment.getInstance();
1132-
IndexerParallelizer parallelizer = env.getIndexerParallelizer();
1133-
final CountDownLatch latch;
1134-
if (subFiles == null || subFiles.isEmpty()) {
1135-
latch = IndexDatabase.updateAll(progress);
1136-
} else {
1137-
List<IndexDatabase> dbs = new ArrayList<>();
1130+
try (IndexerParallelizer parallelizer = env.getIndexerParallelizer()) {
1131+
final CountDownLatch latch;
1132+
if (subFiles == null || subFiles.isEmpty()) {
1133+
latch = IndexDatabase.updateAll(progress);
1134+
} else {
1135+
List<IndexDatabase> dbs = new ArrayList<>();
11381136

1139-
for (String path : subFiles) {
1140-
Project project = Project.getProject(path);
1141-
if (project == null && env.hasProjects()) {
1142-
LOGGER.log(Level.WARNING, "Could not find a project for \"{0}\"", path);
1143-
} else {
1144-
IndexDatabase db;
1145-
if (project == null) {
1146-
db = new IndexDatabase();
1137+
for (String path : subFiles) {
1138+
Project project = Project.getProject(path);
1139+
if (project == null && env.hasProjects()) {
1140+
LOGGER.log(Level.WARNING, "Could not find a project for \"{0}\"", path);
11471141
} else {
1148-
db = new IndexDatabase(project);
1149-
}
1150-
int idx = dbs.indexOf(db);
1151-
if (idx != -1) {
1152-
db = dbs.get(idx);
1153-
}
1142+
IndexDatabase db;
1143+
if (project == null) {
1144+
db = new IndexDatabase();
1145+
} else {
1146+
db = new IndexDatabase(project);
1147+
}
1148+
int idx = dbs.indexOf(db);
1149+
if (idx != -1) {
1150+
db = dbs.get(idx);
1151+
}
11541152

1155-
if (db.addDirectory(path)) {
1156-
if (idx == -1) {
1157-
dbs.add(db);
1153+
if (db.addDirectory(path)) {
1154+
if (idx == -1) {
1155+
dbs.add(db);
1156+
}
1157+
} else {
1158+
LOGGER.log(Level.WARNING, "Directory does not exist \"{0}\"", path);
11581159
}
1159-
} else {
1160-
LOGGER.log(Level.WARNING, "Directory does not exist \"{0}\"", path);
11611160
}
11621161
}
1162+
1163+
latch = new CountDownLatch(dbs.size());
1164+
for (final IndexDatabase db : dbs) {
1165+
db.addIndexChangedListener(progress);
1166+
parallelizer.getFixedExecutor().submit(() -> {
1167+
try {
1168+
db.update();
1169+
} catch (Throwable e) {
1170+
LOGGER.log(Level.SEVERE, "An error occurred while updating index", e);
1171+
} finally {
1172+
latch.countDown();
1173+
}
1174+
});
1175+
}
11631176
}
11641177

1165-
latch = new CountDownLatch(dbs.size());
1166-
for (final IndexDatabase db : dbs) {
1167-
db.addIndexChangedListener(progress);
1168-
parallelizer.getFixedExecutor().submit(() -> {
1169-
try {
1170-
db.update();
1171-
} catch (Throwable e) {
1172-
LOGGER.log(Level.SEVERE, "An error occurred while updating index", e);
1173-
} finally {
1174-
latch.countDown();
1175-
}
1176-
});
1178+
// Wait forever for the executors to finish.
1179+
try {
1180+
LOGGER.info("Waiting for the executors to finish");
1181+
latch.await();
1182+
} catch (InterruptedException exp) {
1183+
LOGGER.log(Level.WARNING, "Received interrupt while waiting" +
1184+
" for executor to finish", exp);
11771185
}
1178-
}
1186+
elapsed.report(LOGGER, "Done indexing data of all repositories", "indexer.repository.indexing");
11791187

1180-
// Wait forever for the executors to finish.
1181-
try {
1182-
LOGGER.info("Waiting for the executors to finish");
1183-
latch.await();
1184-
} catch (InterruptedException exp) {
1185-
LOGGER.log(Level.WARNING, "Received interrupt while waiting" +
1186-
" for executor to finish", exp);
1188+
CtagsUtil.deleteTempFiles();
11871189
}
1188-
elapsed.report(LOGGER, "Done indexing data of all repositories", "indexer.repository.indexing");
1189-
1190-
CtagsUtil.deleteTempFiles();
11911190
}
11921191

11931192
public void sendToConfigHost(RuntimeEnvironment env, String host) {

0 commit comments

Comments
 (0)