Detail
#28666
Fehlender DisplayContext nach BinaryDataSource-Conversion
Bei der Konvertierung von BinaryDataSource zu BinaryData wird ein unvollständiger DisplayContext an den Background-Thread weitergegeben. Dies führt zu späteren NullPointerException`s in nachgelagerten Aufrufen, die einen vollständigen `DisplayContext benötigen (z.B. PDF-Export, java.lang.NullPointerException: Cannot invoke "jakarta.servlet.http.HttpServletRequest.getContextPath()" because "this.request" is null at com.top_logic.layout.basic.DefaultDisplayContext.getContextPath(DefaultDisplayContext.java:60)).
**Root Cause** Der StreamIOConverter.convert() verwendet ThreadContext.getThreadContext() und propagiert diesen mit ThreadContextManager.inContext() an Background-Threads. Dieser übertragene Context ist jedoch unvollständig/leer. Wenn später in den Background-Threads DisplayContext-Operationen ausgeführt werden, führen die fehlenden Context-Infos zu NullPointerExceptions.
**Lösung** Vollständigen InteractionContext kopieren: Statt des unvollständigen ThreadContext wird nun der vollständige InteractionContext mit allen HTTP-Servlet-Objekten in Background-Threads rekonstruiert.