diff --git a/pom.xml b/pom.xml
index dc6e4ea..ed15fee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
org.scijava
pom-scijava
- 37.0.0
+ 38.0.1
@@ -120,7 +120,7 @@
0.2.5
2.2.2
- 3.2.0
+ 3.3.0
diff --git a/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java b/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java
index abfbcbf..8a20a59 100644
--- a/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java
+++ b/src/main/java/org/janelia/saalfeldlab/n5/s3/AmazonS3KeyValueAccess.java
@@ -47,7 +47,8 @@
import java.util.List;
import java.util.stream.Collectors;
-import com.amazonaws.services.s3.AmazonS3URI;
+import com.amazonaws.AmazonServiceException;
+import com.amazonaws.services.s3.model.S3Object;
import org.janelia.saalfeldlab.n5.KeyValueAccess;
import org.janelia.saalfeldlab.n5.LockedChannel;
import org.janelia.saalfeldlab.n5.N5Exception;
@@ -603,7 +604,15 @@ private void checkWritable() {
@Override
public InputStream newInputStream() {
- final S3ObjectInputStream in = s3.getObject(bucketName, path).getObjectContent();
+ final S3Object object;
+ try {
+ object = s3.getObject(bucketName, path);
+ } catch (final AmazonServiceException e) {
+ if (e.getStatusCode() == 404)
+ throw new N5Exception.N5NoSuchKeyException("No such key", e);
+ throw e;
+ }
+ final S3ObjectInputStream in = object.getObjectContent();
final S3ObjectInputStreamDrain s3in = new S3ObjectInputStreamDrain(in);
synchronized (resources) {
resources.add(s3in);