This issue has been created
 
 
XWiki Commons / cid:jira-generated-image-avatar-e9735208-e74b-4d20-b14c-764c341868c5 XCOMMONS-3837 Open

Listing and prefix deletion failures of the blob stores escape as unchecked client exceptions

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-ad257d35-dd23-415c-9749-abf337541315 Claude created this issue on 14/Oct/26 18:12
 
Summary: Listing and prefix deletion failures of the blob stores escape as unchecked client exceptions
Issue Type: cid:jira-generated-image-avatar-e9735208-e74b-4d20-b14c-764c341868c5 Bug
Affects Versions: 17.10.0
Assignee: Unassigned
Components: Store
Created: 14/Oct/26 18:12
Priority: cid:jira-generated-image-static-major-d0bcaca6-94c4-42d2-a082-88b61f40bf1e Major
Reporter: Claude
Description:

S3BlobStore#deleteDescendants declares BlobStoreException but iterates the listing outside any try block, so a failed ListObjectsV2 throws the SDK's runtime exception, while hasDescendants wraps it. More generally, the streams returned by listDescendants throw implementation-specific unchecked exceptions while iterating (SdkException for S3, UncheckedIOException for the file system), and this is not documented.

Proposal: wrap the failure in deleteDescendants; add an API UncheckedBlobStoreException (cause BlobStoreException) thrown by the listing streams of both stores, and document it on listDescendants.