Skip to content

Persistence JSON deserialization fails with empty persistenceData #475

@AndisGrossteins

Description

@AndisGrossteins

Testing build from development after #474 merge.

While loading a log file with existing persistence JSON file saved by previous action build I get this strangeness in NLog logfile:

2025-10-01 23:13:54.9390|ERROR|
LogExpert.Core.Classes.Persister.Persister
Error loading persistence data from C:\Users\andis\Documents\LogExpert\C__Development_LogExpert_Snapshot-Debug_logs_logexpert.log.lxp Additional text found in JSON string after finishing deserializing object. Path 'FileName', line 29, position 13. Newtonsoft.Json.JsonSerializationException Newtonsoft.Json.JsonSerializationException: Additional text found in JSON string after finishing deserializing object. Path 'FileName', line 29, position 13.
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at LogExpert.Core.Classes.Persister.Persister.LoadInternal(String fileName) in C:\Development\LogExpert\src\LogExpert.Core\Classes\Persister\Persister.cs:line 266

Note the "Additional text found in JSON string after finishing deserializing object." part.

One side effect that is logged:

2025-10-01 23:13:55.1626|ERROR
LogExpert.Core.Classes.Log.LogfileReader
Cannot find buffer for line 0, file: C:\Development\LogExpert_Snapshot-Debug\logs\logexpert.log (MultiFile)

That is followed by NullReferenceException (as noted before) which is to be expected if persistenceData is null:

LogExpert.Core.Classes.Log.LogfileReader
System.NullReferenceException:
Object reference not set to an instance of an object.Object reference not set to an instance of an object. System.NullReferenceException System.NullReferenceException: Object reference not set to an instance of an object.
   at LogExpert.UI.Controls.LogWindow.LogWindow.LoadPersistenceData() in C:\Development\LogExpert\src\LogExpert.UI\Controls\LogWindow\LogWindow.cs:line 2361
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
--- End of stack trace from previous location ---
   at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
   at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
   at LogExpert.UI.Controls.LogWindow.LogWindow.OnLogFileReaderFinishedLoading(Object sender, EventArgs e) in C:\Development\LogExpert\src\LogExpert.UI\Controls\LogWindow\LogWindow.cs:line 704
   at LogExpert.Core.Classes.Log.LogfileReader.OnLoadingFinished() in C:\Development\LogExpert\src\LogExpert.Core\Classes\Log\LogfileReader.cs:line 1807
   at LogExpert.Core.Classes.Log.LogfileReader.MonitorThreadProc() in C:\Development\LogExpert\src\LogExpert.Core\Classes\Log\LogfileReader.cs:line 1446

I'll try deleting the .lxp file to recreate it and see if anything else pops up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions