Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(artifacts/test): clear the ArtifactStore.instance in S3ArtifactSt… (
#1137) * fix(artifacts/test): clear the ArtifactStore.instance in S3ArtifactStoreConfigurationTest so other tests that assume ArtifactStore.getInstance is null (e.g. ExpectedArtifactTest) don't try to store an artifact and fail trying to communicate with s3 with an error like: software.amazon.awssdk.core.exception.SdkClientException: Unable to marshall request to JSON: Parameter 'Bucket' must not be null at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111) at software.amazon.awssdk.services.s3.transform.HeadObjectRequestMarshaller.marshall(HeadObjectRequestMarshaller.java:53) at software.amazon.awssdk.services.s3.transform.HeadObjectRequestMarshaller.marshall(HeadObjectRequestMarshaller.java:31) at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$finalizeSdkHttpFullRequest$0(BaseClientHandler.java:73) at software.amazon.awssdk.core.internal.util.MetricUtils.measureDuration(MetricUtils.java:50) at software.amazon.awssdk.core.internal.handler.BaseClientHandler.finalizeSdkHttpFullRequest(BaseClientHandler.java:72) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:151) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:82) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:179) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:76) at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45) at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:56) at software.amazon.awssdk.services.s3.DefaultS3Client.headObject(DefaultS3Client.java:5438) at com.netflix.spinnaker.kork.artifacts.artifactstore.s3.S3ArtifactStoreStorer.objectExists(S3ArtifactStoreStorer.java:132) at com.netflix.spinnaker.kork.artifacts.artifactstore.s3.S3ArtifactStoreStorer.store(S3ArtifactStoreStorer.java:90) at com.netflix.spinnaker.kork.artifacts.artifactstore.ArtifactStore.store(ArtifactStore.java:39) at com.netflix.spinnaker.kork.artifacts.model.ExpectedArtifact.store(ExpectedArtifact.java:160) at com.netflix.spinnaker.kork.artifacts.model.ExpectedArtifact.<init>(ExpectedArtifact.java:56) at com.netflix.spinnaker.kork.artifacts.model.ExpectedArtifact$ExpectedArtifactBuilder.build(ExpectedArtifact.java:44) at com.netflix.spinnaker.kork.artifacts.model.ExpectedArtifactTest.testReferenceMatches(ExpectedArtifactTest.java:205) Yes, it's possible to configure a bucket name in S3ArtifactStoreConfiguration, but the more fundamental issue is having tests leaving a clean slate when they're done. * refactor(artifacts/test): use @AfterEach to protect against other tests polluting state
- Loading branch information