diff --git a/src/Shared/PackageManagers/CargoProjectManager.cs b/src/Shared/PackageManagers/CargoProjectManager.cs index 8d6ca591..5d4d34a3 100644 --- a/src/Shared/PackageManagers/CargoProjectManager.cs +++ b/src/Shared/PackageManagers/CargoProjectManager.cs @@ -417,14 +417,9 @@ public override Uri GetPackageAbsoluteUri(PackageURL purl) return null; } - catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.InternalServerError) - { - Logger.Debug($"Unable to get published timestamp for package: {purl}, error: {ex.Message}"); - return null; - } - catch (Exception ex) + catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { - Logger.Debug(ex, "Error fetching PublishedTimeStamp: {0}", ex.Message); + Logger.Debug($"RSS feed not found for package: {purl}, error: {ex.Message}"); return null; } } diff --git a/src/Shared/PackageManagers/MavenProjectManager.cs b/src/Shared/PackageManagers/MavenProjectManager.cs index cf480235..ff49ff37 100644 --- a/src/Shared/PackageManagers/MavenProjectManager.cs +++ b/src/Shared/PackageManagers/MavenProjectManager.cs @@ -274,7 +274,7 @@ public override async Task PackageVersionExistsAsync(PackageURL purl, bool var baseUrl = $"{feedUrl.EnsureTrailingSlash()}{packageNamespace}/{packageName}/{purl.Version}/{packageName}-{purl.Version}.pom"; return await GetHttpStringCache(httpClient, baseUrl, useCache); } - catch (Exception ex) + catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { Logger.Warn(ex, $"Error fetching Maven metadata: {ex.Message}"); return null; diff --git a/src/Shared/PackageManagers/NPMProjectManager.cs b/src/Shared/PackageManagers/NPMProjectManager.cs index 54bcc778..6e8a2598 100644 --- a/src/Shared/PackageManagers/NPMProjectManager.cs +++ b/src/Shared/PackageManagers/NPMProjectManager.cs @@ -380,7 +380,7 @@ public override async Task> EnumerateVersionsAsync(PackageUR string? content = await GetHttpStringCache(httpClient, $"{ENV_NPM_API_ENDPOINT}/{packageName}", useCache); return content; } - catch (Exception ex) + catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { Logger.Debug(ex, $"Error fetching NPM metadata: {ex.Message}"); return null; diff --git a/src/Shared/PackageManagers/NuGetProjectManager.cs b/src/Shared/PackageManagers/NuGetProjectManager.cs index c8982143..0bd6b159 100644 --- a/src/Shared/PackageManagers/NuGetProjectManager.cs +++ b/src/Shared/PackageManagers/NuGetProjectManager.cs @@ -18,6 +18,7 @@ namespace Microsoft.CST.OpenSource.PackageManagers using System.Collections.Generic; using System.IO; using System.Linq; + using System.Net; using System.Net.Http; using System.Text.Json; using System.Threading.Tasks; @@ -149,7 +150,12 @@ private async Task GetRegistrationEndpointAsync() return JsonSerializer.Serialize(packageVersionMetadata); } - catch (Exception ex) + catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound) + { + Logger.Debug(ex, $"Error fetching NuGet metadata: {ex.Message}"); + return null; + } + catch (InvalidOperationException ex) when (purl.Version == null) { Logger.Debug(ex, $"Error fetching NuGet metadata: {ex.Message}"); return null; diff --git a/src/Shared/PackageManagers/PyPIProjectManager.cs b/src/Shared/PackageManagers/PyPIProjectManager.cs index 13b034d2..5ed925dc 100644 --- a/src/Shared/PackageManagers/PyPIProjectManager.cs +++ b/src/Shared/PackageManagers/PyPIProjectManager.cs @@ -289,7 +289,7 @@ public override async Task> EnumerateVersionsAsync(PackageUR return await GetHttpStringCache(httpClient, $"{ENV_PYPI_ENDPOINT}/pypi/{purl.Name}/json", useCache); } - catch (Exception ex) + catch (HttpRequestException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { Logger.Debug(ex, "Error fetching PyPI metadata: {0}", ex.Message); return null;