XML-Datenquelle erzeugt Exception in LL22

Die Datenquelle ist ein selbst erzeugtes XML. In LL 21 gab es keine Probleme, aber nach einem Upgrade auf LL 22 kommt dieser Fehler:

Object reference not set to an instance of an object. at combit.ListLabel22.DataProviders.XmlTableRow.InitColumns(Boolean forStructureParsing)
at combit.ListLabel22.DataProviders.XmlTableRow.get_Columns()
at combit.ListLabel22.ElementBaseCollection.AddFromInterface(ITableRow value, String Prefix, AutoDefineElementHandler AutoDefineElements)
at combit.ListLabel22.ListLabel.DefineData(IDataProvider dataSource, ITableRow row, String prefix, Int32 level, Int32 recursionLevel)
at combit.ListLabel22.ListLabel.PassFirstRow(IDataProvider dataSource, ITable table)
at combit.ListLabel22.ListLabel.PassDataStructureFromRelationalDataSource(IDataProvider dataSource, Boolean forDesigner)
at combit.ListLabel22.ListLabel.DesignFromRelationalDataSource(IDataProvider dataSource, String designerTitle, LlProject projectType, String projectFile, Boolean showFileSelect)
at combit.ListLabel22.ListLabel.AutoDesign(String designerTitle, LlProject projectType, String projectFile, Boolean showFileSelect)
at combit.ListLabel22.ListLabel.Design(Object userData, IntPtr windowHandle, String designerTitle, LlProject projectType, String projectFile, Boolean showFileSelect)
at combit.ListLabel22.ListLabel.Design(LlProject projectType)

Ich habe das XML manuell verändert und manchmal funktioniert das Laden des XMLs (wenn ich manche Teile entferne). Ich habe aber noch keine Stelle identifiziern können, die das Verhalten nachweisbar beeinflusst.

Der Stacktrace im Debug-Log sieht ein wenig anders aus:

CXLL22 : 09:26:05.723 00001d40/00 6 [L04 EXT]: Inner Exception: IndexOutOfRangeException (Index was outside the bounds of the array.)
CXLL22 : 09:26:05.723 00001d40/00 7 [L04 EXT]: Stack Trace:
CXLL22 : 09:26:05.723 00001d40/00 8 [L04 EXT]: at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)

CXLL22 : 09:26:05.723 00001d40/00 9 [L04 EXT]: at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)

CXLL22 : 09:26:05.723 00001d40/00 0 [L04 EXT]: at System.Threading.Tasks.Parallel.PartitionerForEachWorker[TSource,TLocal](Partitioner1 source, ParallelOptions parallelOptions, Action1 simpleBody, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally)

CXLL22 : 09:26:05.723 00001d40/00 1 [L04 EXT]: at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally)

CXLL22 : 09:26:05.723 00001d40/00 2 [L04 EXT]: at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, Action1 body)

CXLL22 : 09:26:05.723 00001d40/00 3 [L04 EXT]: at combit.ListLabel22.DataProviders.XmlDataProvider.CheckAddTableAndRelation(String tableName, XPathNavigator parentItem, String navigationId)

CXLL22 : 09:26:05.723 00001d40/00 4 [L04 EXT]: at combit.ListLabel22.DataProviders.XmlDataProvider.BuildDom(XPathNavigator item, XPathNavigator parentItem, String navigationId)

CXLL22 : 09:26:05.723 00001d40/00 5 [L04 EXT]: at combit.ListLabel22.DataProviders.XmlDataProvider.BuildDom(XPathNavigator item, XPathNavigator parentItem, String navigationId)

CXLL22 : 09:26:05.723 00001d40/00 6 [L04 EXT]: at combit.ListLabel22.DataProviders.XmlDataProvider.Init()

CXLL22 : 09:26:05.723 00001d40/00 7 [L04 EXT]: at combit.ListLabel22.DataProviders.XmlDataProvider.combit.ListLabel22.DataProviders.IDataProvider.get_Tables()

CXLL22 : 09:26:05.723 00001d40/00 8 [L04 EXT]: at combit.ListLabel22.ListLabel.PrintReportFromRelationalDataSourceNewMode(IDataProvider dataSource, String projectFile, Boolean showFileSelect, LlPrintMode printMode, LlBoxType boxType, IntPtr windowHandle, String dialogTitle, Boolean showPrintOptions, String tempPath)

CXLL22 : 09:26:05.723 00001d40/00 9 [L04 EXT]: at combit.ListLabel22.ListLabel.AutoPrint(LlProject projectType, String projectFile, Boolean showFileSelect, LlPrintMode printMode, LlBoxType boxType, IntPtr windowHandle, String dialogTitle, Boolean showPrintOptions, String tempPath)

Hallo Herr Lambert,

vielen Dank für Ihren Beitrag.

Diese Frage lässt sich im Rahmen des Forums leider nicht abschließend klären - wir benötigen zur Klärung weitere Informationen von Ihnen, die auf dieser Plattform nicht sinnvoll ausgetauscht werden können. Gerne können Sie in unserem Supportportal unter An-Abmelden einen Support-Case eröffnen, bitte kopieren Sie dabei die relevanten Informationen aus diesem Thread in die Beschreibung und fügen Sie die von Ihnen verwendeten XML-Dateien mit an.

Vielen Dank für Ihre Mitarbeit!

Mit freundlichen Grüßen

Patrick Preuschoff
Technischer Support
combit GmbH

Hallo !

Was kam denn hierbei raus bzw. was ist die Lösung? Wir haben nämlich dasselbe Problem seit der Umstellung auf LL22. Vorher (Version 18) hat alles prima funktioniert und seit der Umstellung auf LL22 funktioniert nichts mehr und wir bekommen ebenfalls einen Fehler bzgl. des XmlDataProviders (obwohl am Code nix geändert wurde).

Aktuell brennt das sehr bei uns in der Firma…

Viele Grüße
Thomas Klocker

PS: Das hier ist die Ausgabe von DebWin:

Debwin4::CSV::V1;TypeCode;Timestamp;Level;Logger;Thread;Properties;Message
:black_small_square:;1000;21.09.2017 08:27:56.431;3;LL.Generic;90C;100:2=CMLL22​:diamonds:101:1=2; WRN: This job is being used by a thread that is different from the thread that created it. This should be avoided, as a job is neither guaranteed to be threadsafe in itself (unless needed internally) nor are handles crossthreadsafe.
:black_small_square:;1000;21.09.2017 08:27:56.431;3;LL.Generic;90C;100:2=CMLL22​:diamonds:101:1=2; WRN: This job is being used by a thread that is different from the thread that created it. This should be avoided, as a job is neither guaranteed to be threadsafe in itself (unless needed internally) nor are handles crossthreadsafe.
:black_small_square:;1000;21.09.2017 08:27:58.232;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: WRN: Fileversion info: expected 14, is 10
:black_small_square:;1000;21.09.2017 08:27:58.679;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:27:58.693;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:27:58.710;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=7; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:28:00.069;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: WRN: Fileversion info: expected 14, is 10
:black_small_square:;1000;21.09.2017 08:28:00.840;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:28:00.858;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:28:04.582;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: WRN: Fileversion info: expected 14, is 10
:black_small_square:;1000;21.09.2017 08:28:05.133;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=2; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:28:05.152;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=2; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:28:07.951;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: WRN: Fileversion info: expected 14, is 10
:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: Caught IndexOutOfRangeException (Der Index war außerhalb des Arraybereichs.).
:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: Inner Exception: ()
:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: Stack Trace:
:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei System.Collections.Generic.Dictionary`2.ValueCollection.CopyTo(TValue[] array, Int32 index)

:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei System.Collections.Generic.List1..ctor(IEnumerable1 collection)

:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.DataProviders.XmlColumnCache.GetColumns(String tableName)

:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.DataProviders.XmlTableRow.InitColumns(Boolean forStructureParsing)

:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.DataProviders.XmlTableRow.get_Columns()

:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.DataProviders.DisposableTableRow.get_Columns()

:black_small_square:;1000;21.09.2017 08:28:08.330;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.ElementBaseCollection.AddFromInterface(ITableRow value, String Prefix, AutoDefineElementHandler AutoDefineElements)

:black_small_square:;1000;21.09.2017 08:28:08.331;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.ListLabel.DefineData(IDataProvider dataSource, ITableRow row, String prefix, Int32 level, Int32 recursionLevel)

:black_small_square:;1000;21.09.2017 08:28:08.331;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.ListLabel.DefineData(IDataProvider dataSource, ITableRow row, Int32 level)

:black_small_square:;1000;21.09.2017 08:28:08.331;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.DataProviders.DataProviderInterfaceProxyNode.DefineRow()
:black_small_square:;1000;21.09.2017 08:28:08.357;3;LL.DataProvider;2F84;100:2=CMLL22​:diamonds:101:1=0; WRN: clsDataProvider::SetHRESULT((error code 0x80131508))
:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: Caught LL_Printing_Exception (Während des Druckens ist ein allgemeiner Fehler aufgetreten. Prüfen Sie die Projektdatei und die Datenquelle.).
:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: Inner Exception: ()
:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: Stack Trace:
:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.LLException.CheckReturn(Int32 returnValue)

:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.LlCore.LlPrintEnd(Int32 pages)

:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.LlCore.LlPrint()

:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.ListLabel.PrintReportFromRelationalDataSourceNewMode(IDataProvider dataSource, String projectFile, Boolean showFileSelect, LlPrintMode printMode, LlBoxType boxType, IntPtr windowHandle, String dialogTitle, Boolean showPrintOptions, String tempPath)

:black_small_square:;1000;21.09.2017 08:28:08.461;4;LL.NetFX;2F84;100:2=CMLL22​:diamonds:101:1=0; ERR: bei combit.ListLabel22.ListLabel.AutoPrint(LlProject projectType, String projectFile, Boolean showFileSelect, LlPrintMode printMode, LlBoxType boxType, IntPtr windowHandle, String dialogTitle, Boolean showPrintOptions, String tempPath)
:black_small_square:;1000;21.09.2017 08:28:08.563;3;LL.Generic;2F84;100:2=CMLL22​:diamonds:101:1=1; WRN: LS: opening a pre-LL18 storage file in r/w mode will not work correctly in all cases…
:black_small_square:;1000;21.09.2017 08:29:51.333;3;LL.Notification;248C;100:2=CMLL22​:diamonds:101:1=0; WRN: HINT: There is no destination window handle to send the call to. Please use LlSetNotificationCallback(), or pass a valid window handle to LL_OPTION_NOTIFICATIONMESSAGEHWND or API calls, if you need the message.
:black_small_square:;1000;21.09.2017 08:30:03.017;3;LL.Notification;4158;100:2=CMLL22​:diamonds:101:1=0; WRN: HINT: There is no destination window handle to send the call to. Please use LlSetNotificationCallback(), or pass a valid window handle to LL_OPTION_NOTIFICATIONMESSAGEHWND or API calls, if you need the message.