Skip to content

Commit ca0af66

Browse files
committed
fix(cache): add @operation to flushAll and fix fragile test assertion
- Add @Operation/@ApiResponses to flushAll() documenting behavior change (permission reset + PushPublishing reload) and that provider param is ignored - Change freeMemory assertion from > 0 to >= 0 to prevent flaky failures under CI memory pressure
1 parent 6724ec9 commit ca0af66

3 files changed

Lines changed: 25 additions & 8 deletions

File tree

dotCMS/src/main/java/com/dotcms/rest/api/v1/system/cache/CacheResource.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,25 @@ public Response flushObject(@Context final HttpServletRequest request,
341341
}
342342

343343
/**
344-
* Deletes an objects for a provider (will clean all group and generates a new key)
344+
* Flushes all caches across all providers, resets permission references,
345+
* and reloads PushPublishing filters. The provider path parameter is ignored —
346+
* all caches are flushed regardless.
347+
*
345348
* @param request {@link HttpServletRequest}
346349
* @param response {@link HttpServletResponse}
347-
* @param provider {@link String}
350+
* @param provider {@link String} ignored — all providers are flushed
348351
* @return Response
349352
*/
353+
@Operation(
354+
summary = "Flush all caches",
355+
description = "Flushes all caches across all providers, resets permission references, "
356+
+ "and reloads PushPublishing filters. The provider path parameter is ignored."
357+
)
358+
@ApiResponses(value = {
359+
@ApiResponse(responseCode = "200", description = "All caches flushed successfully"),
360+
@ApiResponse(responseCode = "401", description = "Unauthorized - authentication required"),
361+
@ApiResponse(responseCode = "403", description = "Forbidden - requires maintenance portlet access")
362+
})
350363
@NoCache
351364
@DELETE
352365
@Path("/provider/{provider: .*}/flush")

dotCMS/src/main/webapp/WEB-INF/openapi/openapi.yaml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4244,6 +4244,8 @@ paths:
42444244
- Cache Management
42454245
/v1/caches/provider/{provider}/flush:
42464246
delete:
4247+
description: "Flushes all caches across all providers, resets permission references,\
4248+
\ and reloads PushPublishing filters. The provider path parameter is ignored."
42474249
operationId: flushAll
42484250
parameters:
42494251
- in: path
@@ -4253,11 +4255,13 @@ paths:
42534255
type: string
42544256
pattern: .*
42554257
responses:
4256-
default:
4257-
content:
4258-
application/javascript: {}
4259-
application/json: {}
4260-
description: default response
4258+
"200":
4259+
description: All caches flushed successfully
4260+
"401":
4261+
description: Unauthorized - authentication required
4262+
"403":
4263+
description: Forbidden - requires maintenance portlet access
4264+
summary: Flush all caches
42614265
tags:
42624266
- Cache Management
42634267
/v1/caches/provider/{provider}/flush/{group}:

dotcms-integration/src/test/java/com/dotcms/rest/api/v1/system/cache/CacheResourceIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public void test_getCacheStats_returns_valid_memory() {
123123
assertTrue("maxMemory should be positive", memory.maxMemory() > 0);
124124
assertTrue("allocatedMemory should be positive", memory.allocatedMemory() > 0);
125125
assertTrue("usedMemory should be positive", memory.usedMemory() > 0);
126-
assertTrue("freeMemory should be positive", memory.freeMemory() > 0);
126+
assertTrue("freeMemory should be non-negative", memory.freeMemory() >= 0);
127127
assertEquals("freeMemory should equal maxMemory minus usedMemory",
128128
memory.maxMemory() - memory.usedMemory(), memory.freeMemory());
129129
}

0 commit comments

Comments
 (0)