diff --git a/src/Sarif/EnumeratedArtifact.cs b/src/Sarif/EnumeratedArtifact.cs index 0a6311ada..b3004d191 100644 --- a/src/Sarif/EnumeratedArtifact.cs +++ b/src/Sarif/EnumeratedArtifact.cs @@ -19,7 +19,6 @@ public EnumeratedArtifact(IFileSystem fileSystem) internal byte[] bytes; internal string contents; - private bool? isBinary; private Encoding encoding; public Uri Uri { get; set; } @@ -28,22 +27,11 @@ public bool IsBinary { get { - return this.isBinary ?? IsArtifactBinary(); + GetArtifactData(); + return this.contents == null; } } - internal bool IsArtifactBinary() - { - if (isBinary.HasValue) - { - return isBinary.Value; - } - - GetArtifactData(); - this.isBinary = this.contents == null; - return this.isBinary.Value; - } - public Stream Stream { get; set; } public Encoding Encoding @@ -151,7 +139,7 @@ private void RetrieveDataFromSeekableStream() // Reset to beginning of stream in case caller neglected to do so. this.Stream.Seek(0, SeekOrigin.Begin); - byte[] header = new byte[4096]; + byte[] header = new byte[1024]; int length = this.Stream.Read(header, 0, header.Length); isText = FileEncoding.CheckForTextualData(header, 0, length, out this.encoding); diff --git a/src/Sarif/MultithreadedZipArchiveArtifactProvider.cs b/src/Sarif/MultithreadedZipArchiveArtifactProvider.cs index 42115849f..4fcb8d6d7 100644 --- a/src/Sarif/MultithreadedZipArchiveArtifactProvider.cs +++ b/src/Sarif/MultithreadedZipArchiveArtifactProvider.cs @@ -12,8 +12,8 @@ public class MultithreadedZipArchiveArtifactProvider : ArtifactProvider private readonly ZipArchive zipArchive; private ISet binaryExtensions; - public ISet BinaryExtensions - { + public ISet BinaryExtensions + { get { this.binaryExtensions ??= CreateDefaultBinaryExtensionsSet(); diff --git a/src/Test.UnitTests.Sarif/EnumeratedArtifactTests.cs b/src/Test.UnitTests.Sarif/EnumeratedArtifactTests.cs index d731cf49d..b2bbf3585 100644 --- a/src/Test.UnitTests.Sarif/EnumeratedArtifactTests.cs +++ b/src/Test.UnitTests.Sarif/EnumeratedArtifactTests.cs @@ -221,6 +221,7 @@ private void ValidateBinaryArtifact(EnumeratedArtifact artifact, int sizeInBytes artifact.Bytes.Should().NotBeNull(); artifact.Bytes.Length.Should().Be(sizeInBytes); artifact.SizeInBytes.Should().Be(sizeInBytes); + artifact.IsBinary.Should().BeTrue(); artifact.Contents.Should().BeNull(); } @@ -230,6 +231,7 @@ private void ValidateTextArtifact(EnumeratedArtifact artifact, int sizeInBytes) artifact.Contents.Should().NotBeNull(); artifact.Contents.Length.Should().Be(sizeInBytes); artifact.SizeInBytes.Should().Be(sizeInBytes); + artifact.IsBinary.Should().BeFalse(); artifact.Bytes.Should().BeNull(); }