Skip to content

added json converter for encoding and bookmarks#474

Merged
Hirogen merged 2 commits intoDevelopmentfrom
470-settings-deserialization-fails-if-filterparamscurrentcolumnizer-cant-be-deserialized
Oct 1, 2025
Merged

added json converter for encoding and bookmarks#474
Hirogen merged 2 commits intoDevelopmentfrom
470-settings-deserialization-fails-if-filterparamscurrentcolumnizer-cant-be-deserialized

Conversation

@Hirogen
Copy link
Copy Markdown
Collaborator

@Hirogen Hirogen commented Oct 1, 2025

  1. fixed bookmarks not saved in PersistenceData
  2. logexpert project sessions are also in json format
  3. fixed possible nullreference when filterparams was null / empty and a dirty search was started
  4. Added JsonConverter for Encodings

fixed bookmarks not saved in PersistenceData and logexpert project sessions are also in json format
fixed possible nullreference when filterparams was null / empty and a dirty search was started
@Hirogen Hirogen requested a review from Copilot October 1, 2025 18:32
@Hirogen Hirogen self-assigned this Oct 1, 2025
@Hirogen Hirogen added the Bugfix Bugfix for Issue label Oct 1, 2025
@Hirogen Hirogen added this to the 1.21.0 milestone Oct 1, 2025
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR modernizes the LogExpert project's persistence system by migrating from XML to JSON format for project files and adding robust JSON serialization support for complex types. The changes improve bookmark persistence and add null safety for filter operations.

Key changes:

  • Migrated project file persistence from XML to JSON format
  • Added custom JSON converter for Encoding objects to handle serialization properly
  • Fixed null reference vulnerability in filter search operations

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
LogTabWindow.cs Updated property name from MemberList to FileNames for project data consistency
LogWindow.cs Added null safety check for filterParams to prevent null reference exceptions
Bookmark.cs Added parameterless constructor with JsonConstructor attribute for JSON deserialization
ProjectPersister.cs Complete rewrite from XML to JSON persistence with proper error handling
ProjectData.cs Renamed MemberList to FileNames and added XML documentation
Persister.cs Consolidated JSON settings and added EncodingJsonConverter for centralized configuration
PersistenceData.cs Added JsonConverter attribute for Encoding property
EncodingJsonConverter.cs New custom JSON converter for proper Encoding serialization/deserialization

@Hirogen Hirogen requested a review from Copilot October 1, 2025 18:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

@Hirogen Hirogen merged commit d1608e4 into Development Oct 1, 2025
2 checks passed
@Hirogen Hirogen linked an issue Dec 10, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bugfix Bugfix for Issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Settings deserialization fails if FilterParams.CurrentColumnizer can't be deserialized Program crashes on start

2 participants