Logos Absturz direkt nach Start

Manuel W
Manuel W Member Posts: 361 ✭✭✭
edited January 29 in German Forum

Und es ist ein Mega-peinlicher Programmier-Fehler: NullPointer-Exception (bzw. Argument-Null-Ex):

Auszug:

Error ID: 8744
Error detail: ArgumentNullException: Value cannot be null. (Parameter 'key')

System.ArgumentNullException: Value cannot be null. (Parameter 'key')
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Libronix.DataTypes.DataTypeManager.OurDataTypeDictionary.get_Item(String key)
   at Libronix.DigitalLibrary.Utility.DataTypeLists.<>c.<DoGetBibleDataTypes>b__20_2(ResourceMilestoneIndexInfo mi)
   at System.Linq.Enumerable.SelectIListIterator`2.MoveNext()
   at System.Linq.Enumerable.OfTypeIterator[TResult](IEnumerable source)+MoveNext()
   at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Boolean& found)
   at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
   at Libronix.DigitalLibrary.Utility.DataTypeLists.<>c.<DoGetBibleDataTypes>b__20_1(ResourceInfo ri)

Zudem werden noch SQLite-Fehler folgender Art geloggt:

Program Version: 39.1 (39.1.0.0006)
Time: 2025-01-29 12:07:10 +01:00 (2025-01-29T11:07:10Z)
SQLite Error 283: recovered 18 frames from WAL file X:\Logos\Documents\abcdef.7nk\LocalUserPreferences\PreferencesManager.db-wal

Program Version: 39.1 (39.1.0.0006)
Time: 2025-01-29 12:07:10 +01:00 (2025-01-29T11:07:10Z)
SQLite Error 283: recovered 12 frames from WAL file X:\Logos\Data\abcdef.7nk\Errors\Application\ErrorReportManager.db-wal

Program Version: 39.1 (39.1.0.0006)
Time: 2025-01-29 12:07:10 +01:00 (2025-01-29T11:07:10Z)
SQLite Error 283: recovered 2 frames from WAL file X:\Logos\Data\abcdef.7nk\ResourceManager\ResourceManager.db-wal

Program Version: 39.1 (39.1.0.0006)
Time: 2025-01-29 12:07:10 +01:00 (2025-01-29T11:07:10Z)
SQLite Error 283: recovered 30 frames from WAL file X:\Logos\Data\abcdef.7nk\KeyLinkManager\keylinkmanager.db-wal

Tagged:

Comments

  • Manuel W
    Manuel W Member Posts: 361 ✭✭✭
    edited January 29

    Which of the developers forgot to Null-Check the dictionary parameter?

    Da bin ich gespannt, wie sie das fixen wollen… Es bleibt keine Zeit ein Update zu laden, da crasht die App schon! Da war wahrscheinlich der Praktikant dran.

  • Manuel W
    Manuel W Member Posts: 361 ✭✭✭
    Error ID: 8744
    Error detail: ArgumentNullException: Value cannot be null. (Parameter 'key')
    
    System.ArgumentNullException: Value cannot be null. (Parameter 'key')
       at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
       at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
       at Libronix.DataTypes.DataTypeManager.OurDataTypeDictionary.get_Item(String key)
       at Libronix.DigitalLibrary.Utility.DataTypeLists.<>c.<DoGetBibleDataTypes>b__20_2(ResourceMilestoneIndexInfo mi)
       at System.Linq.Enumerable.SelectIListIterator`2.MoveNext()
       at System.Linq.Enumerable.OfTypeIterator[TResult](IEnumerable source)+MoveNext()
       at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Boolean& found)
       at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source)
       at Libronix.DigitalLibrary.Utility.DataTypeLists.<>c.<DoGetBibleDataTypes>b__20_1(ResourceInfo ri)
       at System.Linq.Enumerable.SelectIListIterator`2.MoveNext()
       at Libronix.Utility.EnumerableUtility.<WhereNotNull>g__DoWhereNotNull|64_0[T](IEnumerable`1 s)+MoveNext()
       at System.Linq.Enumerable.AppendPrependIterator`1.LoadFromEnumerator()
       at System.Linq.Enumerable.AppendPrepend1Iterator`1.MoveNext()
       at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other)
       at System.Collections.Generic.HashSet`1..ctor(IEnumerable`1 collection, IEqualityComparer`1 comparer)
       at System.Linq.Enumerable.DistinctIterator`1.ToList()
       at Libronix.DigitalLibrary.Utility.DataTypeLists.DoGetBibleDataTypes()
       at Libronix.Utility.LazyObject`1.get_Value()
       at Libronix.DigitalLibrary.Utility.DataTypeLists.GetBibleDataTypes()
       at Libronix.DigitalLibrary.Utility.NotesTool.NotesDigitalLibraryService.GetDataTypePreferencesAsync(CancellationToken cancellationToken)
       at Faithlife.NotesApi.ClientData.SqliteNotesClientRepository.VerifyDataTypePreferencesAsync(DbConnector connector, CancellationToken cancellationToken)
       at Faithlife.NotesApi.ClientData.SqliteNotesClientRepository.UpdateAnchorsAsync(UpdateAnchorsRepositorySettings settings, CancellationToken cancellationToken)
       at Faithlife.NotesApi.Core.CommonNotesApi.UpdateAnchorsAsync(UpdateAnchorsSettings settings, CancellationToken cancellationToken)
       at Faithlife.NotesApi.ClientCore.ClientNotesApi.UpdateAnchorsAsync(UpdateAnchorsSettings settings, CancellationToken cancellationToken)
       at Libronix.DigitalLibrary.NotesTool.NotesToolManager.UpdateAnchorsAsync(CancellationToken cancellationToken)
       at Libronix.DigitalLibrary.NotesTool.NotesToolManager.BackgroundWork.RunAsync(CancellationToken cancellationToken)
       at Libronix.DigitalLibrary.NotesTool.NotesToolManager.BackgroundWork.<Run>b__1_0()
    

    Der Manager des Notiz-Tools wird im Hintergrund gestartet. Er updated die Notiz-Anker und versucht die Einstellungen der Datentypen zu verifizieren (und lädt sie von der lokalen SQLite-Datenbank). Dabei ruft er die Bibel-Datentypen in Logos ab und iteriert durch alle Typen. Dabei wird versucht ein Wert aus einer Wörterbuch-Datenstruktur abzurufen mit einem ungültigen NULL-Wert.

  • Manuel W
    Manuel W Member Posts: 361 ✭✭✭

    Es könnte natürlich sein, dass eine neue Bibel beim Datentyp einen falschen oder keinen Wert gesetzt hat…