Fehlerbehebung
Detail
#27403
Synthetische `UpdateChainLink`-Kette des `KBDataProducerTask`führt ins nichts
Der tl:KBDataProducerTask erstellt eine künstliche UpdateChainLink-Kette um seine Session in die zu verarbeitene Revision zu setzen. Der tl:UpdateChainLink der letzten KnowledgBase-Revision hat keinen Nachfolger.
Werden während der Verarbeitung in der tl:KnowledgeBase weitere Änderungen committet, kann es dazu kommen, dass versucht wird den nächsten UpdateChainLink zu navigieren. Dies führt zu einer NullPointerException:
Stacktrace
java.lang.NullPointerException at com.top_logic.knowledge.service.db2.DBKnowledgeBase.registerForCleanup(DBKnowledgeBase.java:5303) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.updateWithOlderValues(DBKnowledgeItem.java:774) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.updateValues(DBKnowledgeItem.java:730) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.updateDataForRevision(DBKnowledgeItem.java:370) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.findValues(DBKnowledgeItem.java:329) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.valuesAlive(DBKnowledgeItem.java:585) at com.top_logic.knowledge.service.db2.DBKnowledgeBase.syncCacheLookupCache(DBKnowledgeBase.java:1415) at com.top_logic.knowledge.service.db2.DBKnowledgeBase.cleanupAndLookupCache(DBKnowledgeBase.java:5107) at com.top_logic.knowledge.service.db2.DBKnowledgeBase.getCachedKey(DBKnowledgeBase.java:5095) at com.top_logic.knowledge.service.db2.AbstractDBKnowledgeItem.getKnownKey(AbstractDBKnowledgeItem.java:125) at com.top_logic.knowledge.KnowledgeReferenceStorageImpl.loadObjectKey(KnowledgeReferenceStorageImpl.java:328) at com.top_logic.knowledge.ByIDReferenceStorageImpl.fetchValue(ByIDReferenceStorageImpl.java:88) at com.top_logic.dob.attr.storage.AbstractMOAttributeStorageImpl.loadValue(AbstractMOAttributeStorageImpl.java:73) at com.top_logic.knowledge.service.db2.AbstractDBKnowledgeItem.loadAttributeValues(AbstractDBKnowledgeItem.java:277) at com.top_logic.knowledge.service.db2.DBKnowledgeItem.refetch(DBKnowledgeItem.java:687) at com.top_logic.knowledge.service.db2.DBKnowledgeBase.findOrCreateItem(DBKnowledgeBase.java:5238) at com.top_logic.knowledge.service.db2.DBKnowledgeBase.findOrCreateItem(DBKnowledgeBase.java:5194) at com.top_logic.knowledge.service.db2.MonomorphicSearch$FullObjectResult.findNext(MonomorphicSearch.java:322) at com.top_logic.knowledge.service.db2.MonomorphicSearch$FullObjectResult.getAll(MonomorphicSearch.java:301) at com.top_logic.knowledge.service.db2.MonomorphicSearch.search(MonomorphicSearch.java:73) at com.top_logic.knowledge.search.AbstractCompiledQuery.search(AbstractCompiledQuery.java:70) at com.top_logic.knowledge.service.db2.AbstractAssociationQuery.search(AbstractAssociationQuery.java:147) at com.top_logic.knowledge.service.db2.AssociationCache.query(AssociationCache.java:318) at com.top_logic.knowledge.service.db2.AssociationCache.getOrCreateGlobalCache(AssociationCache.java:124) at com.top_logic.knowledge.service.db2.AssociationCache.lookup(AssociationCache.java:67) at com.top_logic.knowledge.service.db2.AssociationCache.getLinksDirect(AssociationCache.java:53) at com.top_logic.knowledge.service.db2.DBKnowledgeBase.resolveLinks(DBKnowledgeBase.java:4257) at com.top_logic.knowledge.service.AssociationQueryUtil.resolveWrappers(AssociationQueryUtil.java:54) at com.top_logic.knowledge.wrap.AbstractWrapper.resolveWrappersTyped(AbstractWrapper.java:997) at com.top_logic.knowledge.wrap.AbstractWrapper.resolveWrappersTyped(AbstractWrapper.java:968) at com.top_logic.contact.business.PersonContact.getPerson(PersonContact.java:147) [siehe Anhang für die restlichen Stackframes]
Test
Nicht stabil reproduzierbar.