Skip to content

Commit 66b018d

Browse files
committed
do not clearn HistoryGuru structures on project data delete
fixes #3895
1 parent 2973234 commit 66b018d

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/history/HistoryGuru.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -727,19 +727,30 @@ public void clearCacheFile(String path) {
727727
historyCache.clearFile(path);
728728
}
729729

730+
/**
731+
* wrapper for {@link #removeCache(Collection, boolean)} with the {@code removeRepositories}
732+
* parameter set to true.
733+
*/
734+
public void removeCache(Collection<String> repositories) {
735+
removeCache(repositories, true);
736+
}
737+
730738
/**
731739
* Remove history data for a list of repositories. Those that are
732740
* successfully cleared are removed from the internal list of repositories.
733741
*
734742
* @param repositories list of repository paths relative to source root
743+
* @param removeRepositories set true to also remove the repositories from internal structures
735744
*/
736-
public void removeCache(Collection<String> repositories) {
745+
public void removeCache(Collection<String> repositories, boolean removeRepositories) {
737746
if (!useCache()) {
738747
return;
739748
}
740749

741750
List<String> repos = clearCache(repositories);
742-
removeRepositories(repos);
751+
if (removeRepositories) {
752+
removeRepositories(repos);
753+
}
743754
}
744755

745756
/**
@@ -797,7 +808,7 @@ public void removeRepositories(Collection<String> repos) {
797808
ccopy.forEach(this::putRepository);
798809
}
799810

800-
/**set
811+
/**
801812
* Set list of known repositories which match the list of directories.
802813
* @param repos list of repositories
803814
* @param dirs list of directories that might correspond to the repositories

opengrok-web/src/main/java/org/opengrok/web/api/v1/controller/ProjectsController.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public Response deleteProject(@Context HttpServletRequest request, @PathParam("p
194194

195195
private void deleteProjectWorkHorse(String projectName, Project project) {
196196
// Delete index data associated with the project.
197-
deleteProjectDataWorkHorse(projectName);
197+
deleteProjectDataWorkHorse(projectName, true);
198198

199199
// Remove the project from its groups.
200200
for (Group group : project.getGroups()) {
@@ -229,13 +229,13 @@ public Response deleteProjectData(@Context HttpServletRequest request,
229229
return ApiTaskManager.getInstance().submitApiTask(PROJECTS_PATH,
230230
new ApiTask(request.getRequestURI(),
231231
() -> {
232-
deleteProjectDataWorkHorse(projectName);
232+
deleteProjectDataWorkHorse(projectName, false);
233233
return null;
234234
},
235235
Response.Status.NO_CONTENT));
236236
}
237237

238-
private void deleteProjectDataWorkHorse(String projectName) {
238+
private void deleteProjectDataWorkHorse(String projectName, boolean clearHistoryGuru) {
239239
LOGGER.log(Level.INFO, "deleting data for project {0}", projectName);
240240

241241
// Delete index and xrefs.
@@ -248,7 +248,7 @@ private void deleteProjectDataWorkHorse(String projectName) {
248248
}
249249
}
250250

251-
deleteHistoryCacheWorkHorse(projectName);
251+
deleteHistoryCacheWorkHorse(projectName, clearHistoryGuru);
252252

253253
// Delete suggester data.
254254
suggester.delete(projectName);
@@ -269,12 +269,12 @@ public Response deleteHistoryCache(@Context HttpServletRequest request,
269269
return ApiTaskManager.getInstance().submitApiTask(PROJECTS_PATH,
270270
new ApiTask(request.getRequestURI(),
271271
() -> {
272-
deleteHistoryCacheWorkHorse(projectName);
272+
deleteHistoryCacheWorkHorse(projectName, false);
273273
return null;
274274
}));
275275
}
276276

277-
private void deleteHistoryCacheWorkHorse(String projectName) {
277+
private void deleteHistoryCacheWorkHorse(String projectName, boolean clearHistoryGuru) {
278278
Project project = disableProject(projectName);
279279

280280
LOGGER.log(Level.INFO, "deleting history cache for project {0}", projectName);
@@ -301,7 +301,7 @@ private void deleteHistoryCacheWorkHorse(String projectName) {
301301
// {@code removeCache()} will return nothing.
302302
return "";
303303
}
304-
}).filter(x -> !x.isEmpty()).collect(Collectors.toSet()));
304+
}).filter(x -> !x.isEmpty()).collect(Collectors.toSet()), clearHistoryGuru);
305305
}
306306

307307
@PUT

0 commit comments

Comments
 (0)