Ensure that S3object gets closed if file does not exist. (#588)
Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
@@ -179,19 +179,23 @@ public class S3Repository implements ArtifactRepository {
|
||||
final String key = objectKey(tenant, sha1Hash);
|
||||
|
||||
LOG.info("Retrieving S3 object from bucket {} and key {}", s3Properties.getBucketName(), key);
|
||||
final S3Object s3Object = amazonS3.getObject(s3Properties.getBucketName(), key);
|
||||
if (s3Object == null) {
|
||||
try (final S3Object s3Object = amazonS3.getObject(s3Properties.getBucketName(), key)) {
|
||||
if (s3Object == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final ObjectMetadata s3ObjectMetadata = s3Object.getObjectMetadata();
|
||||
|
||||
// the MD5Content is stored in the ETag
|
||||
return new S3Artifact(amazonS3, s3Properties, key, sha1Hash,
|
||||
new DbArtifactHash(sha1Hash,
|
||||
BaseEncoding.base16().lowerCase()
|
||||
.encode(BaseEncoding.base64().decode(s3ObjectMetadata.getETag()))),
|
||||
s3ObjectMetadata.getContentLength(), s3ObjectMetadata.getContentType());
|
||||
} catch (final IOException e) {
|
||||
LOG.error("Could not verify S3Object", e);
|
||||
return null;
|
||||
}
|
||||
|
||||
final ObjectMetadata s3ObjectMetadata = s3Object.getObjectMetadata();
|
||||
|
||||
// the MD5Content is stored in the ETag
|
||||
return new S3Artifact(amazonS3, s3Properties, key, sha1Hash,
|
||||
new DbArtifactHash(sha1Hash,
|
||||
BaseEncoding.base16().lowerCase()
|
||||
.encode(BaseEncoding.base64().decode(s3ObjectMetadata.getETag()))),
|
||||
s3ObjectMetadata.getContentLength(), s3ObjectMetadata.getContentType());
|
||||
}
|
||||
|
||||
private static void checkHashes(final AbstractDbArtifact artifact, final DbArtifactHash hash) {
|
||||
|
||||
Reference in New Issue
Block a user