Conversation
…ndency removal Bug fixes: - Fix path manipulation bug in FileManagementUtilities using String.Replace (fragile when sourceDirectory appears as substring in nested paths) - Fix thread-safety in ConcurrentPersistentDictionary: all CRUD operations now use proper locking to match the class name's contract - Fix resource leak in StreamUtils.CopyRessourceToFile (FileStream not disposed on exception) - Fix bare catch blocks in OdbcConnectionManager (catch ArgumentException instead of all exceptions) and BGErrorTracking (catch Exception) - Add missing GC.SuppressFinalize to IDisposable implementations across 8 classes (FixerIOClient, GenericAPIClient, CSVFileReader, CSVFileWriter, ZIPFileUtils, CloudinaryImageManager, ApplicationController, ConcurrentPersistentDictionary) Code quality: - Fix spelling: 'Initalize' → 'Initialize' in 6 files (all private methods) - Make Scheduler.ShutdownTimeout configurable (was hardcoded 30s) - Make CloudinaryImageManager.MaxListResults configurable (was hardcoded 500) - Make ApplicationController.Dispose virtual for subclass overrides Dependency cleanup: - Remove unused System.Data.SqlClient package (deprecated, has known CVEs, not referenced in any source file)
AI AnalysisTechnical Summary This pull request introduces a collection of non-breaking bug fixes, code quality improvements, and dependency cleanups across the repository, following an in-depth audit. No changes were made to the public or protected API signatures, ensuring backward compatibility. Technical Requirements and Constraints
Implementation Considerations
This summary was automatically generated by AI to help with triage and may not be 100% accurate. Suggested Labels: bug |
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
- Add GC.SuppressFinalize to 4 missed IDisposable classes: BGLoggerNetworkListener, LockingList, FileChangesMonitor, ChromeWebbrowserControl - Fix bare catch block in BGErrorTrackingConfiguration (catch Exception) - Harden FileManagementUtilities path normalization with Path.GetFullPath to prevent issues with mixed separators on netstandard2.0
github-actions bot
pushed a commit
that referenced
this pull request
Mar 25, 2026
## [3.0.3](v3.0.2...v3.0.3) (2026-03-25) ### 🐛 Bug Fixes * Non-breaking bug fixes, code quality improvements, and dead dependency removal ([#41](#41)) ([7978dd2](7978dd2))
|
🎉 This PR is included in version 3.0.3 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ergebnis einer Tiefanalyse des Repositories — alle Änderungen sind non-breaking (keine public/protected API-Signaturen geändert).
Bug Fixes
FileManagementUtilities.CopyDirectoryContents:String.Replace()durch sichere Substring-basierte Pfadberechnung ersetzt (verhindert fehlerhafte Pfade bei verschachtelten Verzeichnissen)ConcurrentPersistentDictionary: Alle CRUD-Operationen verwenden jetzt korrektes Locking (Create+Delete war nicht atomar)StreamUtils.CopyRessourceToFile: FileStream wird jetzt perusing varkorrekt disposedOdbcConnectionManager(→ArgumentException) undBGErrorTracking(→Exception)Code Quality
Initalize→Initializein 6 Dateien (alle private/protected Methoden)Scheduler.ShutdownTimeout(war hardcoded 30s) undCloudinaryImageManager.MaxListResults(war hardcoded 500)virtualfür SubklassenDependency Cleanup
Test plan
dotnet build— 0 Fehler, alle Target-Frameworks (net10.0, net8.0, netstandard2.0, windows)dotnet test— 922 Tests bestanden (461 × net10.0 + 461 × net8.0), 0 Fehler