Bugtracker DMXControl 3

  • Status Unbestätigt
  • Percent Complete
    0%
  • Task Type Fehlerbericht
  • Category GUI & Server → Server
  • Assigned To No-one
  • Operating System All
  • Severity High
  • Priority Medium
  • Reported Version 3.2.1
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: DMXControl 3
Opened by Jens-Peter Kühn - 11.08.2020
Last edited by Jens-Peter Kühn - 11.08.2020

FS#4246 - DDF führt zu Exception im Raw-Bereich

Das erste angehängte DDF führt zu einer Exception. Es ist in sofern falsch aufgebaut, als dass ein Step in einem Raw-Bereich ist. Trotzdem darf das nicht zu einer Exception führen.

ProjectLoad: ERROR: Loading Devices in Project(null)ProjectLoad: ERROR: Error loading Devices in ProjectSystem.InvalidOperationException: Handler RawDMXHandlerNode doesn't have any Ranges!
   bei org.dmxc.lumos.Kernel.HAL.Handler.AbstractRangesHandlerNode.getMinValue(String type) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\AbstractRangesHandlerNode.cs:Zeile 770.
   bei org.dmxc.lumos.Kernel.HAL.Handler.AbstractRangesHandlerNode.get_MinValue() in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\AbstractRangesHandlerNode.cs:Zeile 747.
   bei org.dmxc.lumos.Kernel.HAL.Handler.RawDMXHandlerNode.getPropTypeInstance(IDeviceProperty prop) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\Generic\RawDMXHandlerNode.cs:Zeile 102.
   bei org.dmxc.lumos.Kernel.HAL.Handler.AbstractHandlerNode.getTypeInstance(IDeviceProperty prop) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\AbstractHandlerNode.cs:Zeile 751.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerDependency.<>c__DisplayClass25_0.<getTypeInstance>b__0(IPropertyHandlerNode n) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerDependency.cs:Zeile 300.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerDependency.ForEachHandlerNode[T](Func`2 work) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerDependency.cs:Zeile 354.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerDependency.getTypeInstance(IDeviceProperty prop) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerDependency.cs:Zeile 300.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.<>c__DisplayClass24_0.<getTypeInstance>b__0(HandlerDependency h) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 382.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.ForEachHandlerDependency[T](IDevicePropertyBase prop, Func`2 work) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 448.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.getTypeInstance(IDeviceProperty prop) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 382.
   bei org.dmxc.lumos.Kernel.Devices.DeviceBeam.getTypeInstance(IDeviceProperty prop) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DeviceBeam.cs:Zeile 245.
   bei org.dmxc.lumos.Kernel.DeviceProperties.AbstractDeviceProperty`1.getTypeInstance() in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\DeviceProperties\AbstractDeviceProperty.cs:Zeile 250.
   bei org.dmxc.lumos.Kernel.PropertyValue.PropertyValue`1..ctor(AbstractDeviceProperty`1 prop, Int64 id) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\PropertyValue\PropertyValue.cs:Zeile 54.
   bei org.dmxc.lumos.Kernel.PropertyValue.PropertyValue`1..ctor(AbstractDeviceProperty`1 prop) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\PropertyValue\PropertyValue.cs:Zeile 46.
   bei org.dmxc.lumos.Kernel.DeviceProperties.AbstractDeviceProperty`1.getValueInstance() in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\DeviceProperties\AbstractDeviceProperty.cs:Zeile 65.
   bei org.dmxc.lumos.Kernel.Devices.DeviceTools.<createPropertySceneEntries>d__1.MoveNext() in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DeviceTools.cs:Zeile 34.
   bei System.Linq.Enumerable.<SelectManyIterator>d__17`2.MoveNext()
   bei org.dmxc.lumos.Kernel.Devices.DeviceTools.CreateInitializationScene(IDevice device) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DeviceTools.cs:Zeile 19.
   bei org.dmxc.lumos.Kernel.Project.DeviceManager.ReinitDeviceBaseline(IDevice device) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\DeviceManager.cs:Zeile 739.
   bei org.dmxc.lumos.Kernel.Project.DeviceManager.OnDeviceAdded(IDevice d) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\DeviceManager.cs:Zeile 625.
   bei org.dmxc.lumos.Kernel.Project.DeviceManager.<org.dmxc.lumos.Kernel.Run.IManager.initialize>b__132_1(Object o, ProjectResourceEventArgs`1 args) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\DeviceManager.cs:Zeile 1064.
   bei org.dmxc.lumos.Kernel.Project.ProjectResource`1.OnItemAdded(ProjectResourceEventArgs`1 args) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\ProjectResource.cs:Zeile 213.
   bei org.dmxc.lumos.Kernel.Project.ProjectResource`1.ProjectContainer_ItemAdded(Object sender, ProjectContainerEventArgs`1 e) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\ProjectResource.cs:Zeile 189.
   bei org.dmxc.lumos.Kernel.Project.ProjectContainer`1.OnItemAdded(T item) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\ProjectContainer.cs:Zeile 243.
   bei org.dmxc.lumos.Kernel.Project.ProjectContainer`1.Load(LumosResource data, LumosIOContext context) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\ProjectContainer.cs:Zeile 216.
   bei org.dmxc.lumos.Kernel.Project.Project.loadProject(LumosIOContext context) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\Project.cs:Zeile 230.org.dmxc.lumos.Kernel.Exceptions.ProjectLoadException: Errors in Project
   bei org.dmxc.lumos.Kernel.Project.ProjectManager.loadProject(String filename, Stream inputStream, String sessionName, Boolean loadId) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Project\ProjectManager.cs:Zeile 312.

Außerdem fliegt auch noch eine weitere Exception, wenn man das leicht angepasste zweite DDF verwendet.

org.dmxc.lumos.Kernel.Exceptions.XmlParseException: Attribute "caption" in Node "step" missing
   bei org.dmxc.lumos.Kernel.HAL.Handler.RawDMXStepHandlerNode.parseXmlNode(XmlNode ddfnode) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\Generic\RawDMXStepHandlerNode.cs:Zeile 105.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.ParseXmlTree(DDFParseContext context) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 143.
   bei org.dmxc.lumos.Kernel.HAL.Handler.HandlerRegistry.parseXmlFile(DDFParseContext context) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\HAL\Handler\HandlerRegistry.cs:Zeile 58.
   bei org.dmxc.lumos.Kernel.Devices.DeviceBeam..ctor(IDevice parentDevice, UInt32 beamNumber, DDFParseContext context) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DeviceBeam.cs:Zeile 92.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.parseDDF(XmlDocument ddf, String filename) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 406.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.LoadXML(String ddfFile) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 170.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.set_DDFSourceFile(String value) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 115.
   bei org.dmxc.lumos.Kernel.Devices.DMXDevice.setParameterInternal(DeviceParameter parameter, Object value, Object& valueToSend) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\DMXDevice.cs:Zeile 310.
   bei org.dmxc.lumos.Kernel.Devices.AbstractDevice.setParameter(DeviceParameter parameter, Object value) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\AbstractDevice.cs:Zeile 1000.
   bei org.dmxc.lumos.Kernel.Devices.AbstractDevice.<>c__DisplayClass121_0.<org.dmxc.lumos.Kernel.Resource.ILumosSaveable.loadFromManagedTree>b__0(String s, Object o) in D:\Jenkins\workspace\Lumos_3.2_Release\Lumos\Lumos\src\Kernel\Devices\AbstractDevice.cs:Zeile 670.
device-->functions-->rawstep-->step
Project Manager
Arne Lüdtke commented on 11.08.2020 19:14

Naja, der 2. Fehler ist ein Fehler im DDF. Im "step" fehlt eben die "Caption" also der Text. Das Erste ist auch ein Fehler im DDF, aber der hätte früher in der Ladereihenfolge gefunden werden sollen.

Admin
Jens-Peter Kühn commented on 11.08.2020 20:04

Vollkommen richtig, dass das Fehler im DDF sind. Aber fehlerhafte DDFs dürfen nicht zu solchen Exceptions führen. Bei anderen Problemen im DDF ist das auch abgefangen und führt nur zu einem Log-Eintrag. Und der erste führt sogar dazu, dass sich die GUI aufhängt.

Project Manager
Arne Lüdtke commented on 11.08.2020 20:41

Die 2. Exception fliegt bei allen DDF Fehlern. Da kannst du mal einen beliebigen andere Fehler erzeugen, da siehst du was ähnliches. Von daher sehe ich das noch nicht als wirklichen Fehler an, bzw. was hier anders sein soll als bei anderen DDF Fehlern.

Der 1. Fehler wie gesagt, muss weiter Vorne abgefangen werden, dass hier ebenfalls eine XmlParseException fliegt.

Stefan Kistner commented on 12.08.2020 06:18

Als ich mir die DDFs seiner Zeit schon anschaute waren beide Meldungen für mich entsprechende Hinweise, wonach ich in den DDFs suchen musste. Daher hatte ich da auch kein Ticket angelegt.

Admin
Jens-Peter Kühn commented on 12.08.2020 07:29

Zu 2: Vielleicht habe ich das auch einfach etwas falsch ausgedrückt, was ich meinte. Ich hatte im Kopf, dass bei solchen klar im DDF zu verortenden Fehlern, kein Trace mitgeschrieben wird, sondern nur die Warnmeldung selbst. Der Trace dürfte hier nämlich mehr verwirren als helfen, weil der unbedarfte User plötzlich eine Wall of Text sieht, die er als Fehler von DMXControl 3 sieht.

@Stefan: Wie Arne sagte ist der erste Fehler tatsächlich ein, im Parser-Bereich nicht abgefangener Fehler, was so nicht auftreten darf ;) Denn das führt wie gesagt dazu, dass die GUI hängen bleibt, was nicht passieren darf.

Project Manager
Arne Lüdtke commented on 12.08.2020 14:19

Was man hier auch nochmal prüfen sollte ist, in wieweit das Verhalten beim neu anlegen eines Gerätes mit defektem DDF und beim Laden eines Projektes mit selbigem identisch ist. Ich vermute mal nicht. Das ist ein Thema was man irgendwann angehen sollte, genauso wie den Fehlerdialog von Projekten, der ist aktuell auch nicht so gut, aber das ist ja bekannt.

Admin
Jens-Peter Kühn commented on 12.08.2020 20:23

Das könnte man ja evtl. im Zuge der DDFParser-Lib angehen.

Stefan Kistner commented on 12.08.2020 21:36

Was passiert, wenn ich das fehlerhafte DDF einmal im ersten Schritt in ein neues Projekt einfüge (23:23 Uhr) und dann im zweiten (mit einem kleinen Workaround) versuche, das Projekt mit dem gleichen, fehlerhaften DDF zu laden (23:28 Uhr), ist in den beigefügten Logfiles abgebildet.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing