Detail
Detail
#28295
ReferencePreload greift auf Referenzspalten zu, die am jeweiligen Objekt nicht definiert sind
#28349
Migrations-Prozessor zum Update der Rollen-Zuordnungen schlägt bei korrekten Rollen-Zuordnungen fehl
Fehlerbehebung
Detail
#28295
ReferencePreload greift auf Referenzspalten zu, die am jeweiligen Objekt nicht definiert sind
Wenn man z.B. eine Baumtabelle mit unterschiedlichen Objekttypen in den Zeilen hat, von denen ein Zeilentyp eine eine Inline-Referenz definiert und sortiert nach der Spalte, welche diese Referenz anzeigt, dann versucht der Preload mit der Storage-Implementierung der Inline-Referenz auf ein Objekt zuzugreifen, dass diese Spalte gar nicht besitzt. Im Schlechtfall resultiert das in einer ClassCastException, weil der Cache-Wert einer ganz anderen Spalte als Referenzschlüssel interpretiert wird.
Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class com.top_logic.dob.identifier.ObjectKey (java.lang.String is in module java.base of loader 'bootstrap'; com.top_logic.dob.identifier.ObjectKey is in unnamed module of loader 'app') at com.top_logic.knowledge.ByIDReferenceStorageImpl.getCacheValue(ByIDReferenceStorageImpl.java:121) at com.top_logic.knowledge.ByIDReferenceStorageImpl.getReferencedKey(ByIDReferenceStorageImpl.java:104) at com.top_logic.knowledge.KnowledgeReferenceStorageImpl.getReferenceValueKey(KnowledgeReferenceStorageImpl.java:448) at com.top_logic.knowledge.service.db2.AbstractDBKnowledgeItem.lookupKey(AbstractDBKnowledgeItem.java:153) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.lookupKey(DBKnowledgeItem.java:49) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.getReferencedKey(DBKnowledgeItem.java:204) at com.top_logic.knowledge.service.db2.AbstractDBKnowledgeItem.getReferencedKey(AbstractDBKnowledgeItem.java:294) at com.top_logic.model.v5.ReferencePreload.getReferencedKeys(ReferencePreload.java:143) at com.top_logic.model.v5.ReferencePreload.prepare(ReferencePreload.java:81) at com.top_logic.model.export.Preloader.internalPrepare(Preloader.java:55) at com.top_logic.model.export.Preloader.prepare(Preloader.java:50) at com.top_logic.model.export.PreloadOperation.prepare(PreloadOperation.java:40) at com.top_logic.model.export.Preloader.prepare(Preloader.java:42) at com.top_logic.element.layout.grid.AbstractTreeGridBuilder$TreeGridHandler$2.doPrepareRows(AbstractTreeGridBuilder.java:466)