Skip to content

Commit fb424a7

Browse files
committed
Include detailed error in S3 batch delete message
1 parent 8b2c12e commit fb424a7

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

lib/trino-hdfs/src/main/java/io/trino/hdfs/s3/TrinoS3FileSystem.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import com.amazonaws.services.s3.model.KMSEncryptionMaterialsProvider;
6464
import com.amazonaws.services.s3.model.ListObjectsV2Request;
6565
import com.amazonaws.services.s3.model.ListObjectsV2Result;
66+
import com.amazonaws.services.s3.model.MultiObjectDeleteException;
6667
import com.amazonaws.services.s3.model.ObjectMetadata;
6768
import com.amazonaws.services.s3.model.PartETag;
6869
import com.amazonaws.services.s3.model.PutObjectRequest;
@@ -182,6 +183,7 @@
182183
import static java.util.Objects.requireNonNull;
183184
import static java.util.concurrent.Executors.newCachedThreadPool;
184185
import static java.util.concurrent.TimeUnit.SECONDS;
186+
import static java.util.stream.Collectors.joining;
185187
import static java.util.stream.Collectors.toList;
186188
import static org.apache.hadoop.fs.FSExceptionMessages.CANNOT_SEEK_PAST_EOF;
187189
import static org.apache.hadoop.fs.FSExceptionMessages.NEGATIVE_SEEK;
@@ -778,6 +780,12 @@ public void deleteFiles(Collection<Path> paths)
778780
deletePaths(currentBatch);
779781
}
780782
}
783+
catch (MultiObjectDeleteException e) {
784+
String errors = e.getErrors().stream()
785+
.map(error -> format("key: %s, versionId: %s, code: %s, message: %s", error.getKey(), error.getVersionId(), error.getCode(), error.getMessage()))
786+
.collect(joining(", "));
787+
throw new IOException("Exception while batch deleting paths: %s".formatted(errors), e);
788+
}
781789
catch (AmazonClientException e) {
782790
throw new IOException("Exception while batch deleting paths", e);
783791
}

0 commit comments

Comments
 (0)