Major
Nice to have
Detail
Bevor Lucene versucht ein Objekt zu indizieren, muss geprüft werden, ob das Objekt in dem Kontext des Lucene-Threads noch existiert.
Fällt auf nach Änderung #25694, Logger Errors mit DeletedObjectAccess.
Das eigentliche Problem liegt aber im Cache-Handling in der tl:KnowledgeBase: Wenn ein Objekt angelegt wird, wird diese Änderung über ein tl:UpdateEvent an tl:UpdateListener weitergereicht. Sowohl der tl:LuceneIndex als auch die internen Caches der tl:KnowledgeBase sind solche tl:UpdateListener. Jetzt kommt es auf die Reihenfolge an, in der diese Listener informiert werden. Hat man Pech, dann bekommt der tl:LuceneIndex den Event und versucht das neue Objekt zu indizieren, noch bevor der interne Cache der tl:KnowledgeBase über die Aktualisierung informiert wurde und dafür sorgen konnte, das man z.B. auf die Attribute des Typs des neue angelegeten Objektes zugreifen kann (das Problem tritt auch nur im Demo mit C-Typen auf, da diese lokal zu einem Kontext-Objekt sind und zusammen mit ihren Instanzen angelegt werden).
Lösung: Interne Caches vor den "öffentlichen" Listenern informieren.
Test
Kein Test.