uni-bremen-agst/SEE

Error undoing the deletion of edges

Cyclone1337 opened this issue · 0 comments

NullPointerExcpetions occur for each edge to be restored when restoring edges.
If the node is moved afterward, it becomes transparent.

NullReferenceException: Object reference not set to an instance of an object
SEE.Game.Operator.GraphElementOperator`1[C].FadeTo (System.Single alpha, System.Single factor) (at Assets/SEE/Game/Operator/GraphElementOperator.cs:253)
SEE.Game.Operator.EdgeOperator.ShowOrHide (System.Boolean show, SEE.Game.City.EdgeAnimationKind animationKind, System.Single factor) (at Assets/SEE/Game/Operator/EdgeOperator.cs:140)
SEE.Game.City.ReflexionVisualization.HandleEdgeChangeAsync (SEE.DataModel.EdgeChange edgeChange) (at Assets/SEE/Game/City/ReflexionVisualization.cs:308)
UnityEngine.Debug:LogException(Exception)
Cysharp.Threading.Tasks.UniTaskScheduler:PublishUnobservedTaskException(Exception) (at ./Library/PackageCache/com.cysharp.unitask@72e620d169/Runtime/UniTaskScheduler.cs:90)
SEE.Game.City.<HandleEdgeChangeAsync>d__18:MoveNext() (at Assets/SEE/Game/City/ReflexionVisualization.cs:321)
Cysharp.Threading.Tasks.CompilerServices.AsyncUniTaskVoidMethodBuilder:Start(<HandleEdgeChangeAsync>d__18&) (at ./Library/PackageCache/com.cysharp.unitask@72e620d169/Runtime/CompilerServices/AsyncUniTaskVoidMethodBuilder.cs:110)
SEE.Game.City.ReflexionVisualization:HandleEdgeChangeAsync(EdgeChange)
SEE.Game.City.ReflexionVisualization:OnNext(ChangeEvent) (at Assets/SEE/Game/City/ReflexionVisualization.cs:229)
SEE.DataModel.Observable`1:Notify(ChangeEvent) (at Assets/SEE/DataModel/Observable.cs:89)
SEE.Tools.ReflexionAnalysis.ReflexionGraph:Transition(Edge, State) (at Assets/SEE/Tools/ReflexionAnalysis/ReflexionAnalysis.cs:199)
SEE.Tools.ReflexionAnalysis.ReflexionGraph:AddToArchitecture(Edge) (at Assets/SEE/Tools/ReflexionAnalysis/Incremental.cs:223)
SEE.Tools.ReflexionAnalysis.ReflexionGraph:AddEdge(Edge) (at Assets/SEE/Tools/ReflexionAnalysis/ReflexionGraph.cs:324)
SEE.Game.SceneManipulation.GameElementDeleter:RestoreGraph(IEnumerable`1) (at Assets/SEE/Game/SceneManipulation/GameElementDeleter.cs:296)
SEE.Game.SceneManipulation.GameElementDeleter:Revive(ISet`1) (at Assets/SEE/Game/SceneManipulation/GameElementDeleter.cs:216)
SEE.Controls.Actions.DeleteAction:Undo() (at Assets/SEE/Controls/Actions/DeleteAction.cs:223)
SEE.Utils.History.ActionHistory:Undo() (at Assets/SEE/Utils/History/ActionHistory.cs:417)
SEE.Controls.Actions.GlobalActionHistory:Undo() (at Assets/SEE/Controls/Actions/GlobalActionHistory.cs:34)
SEE.GO.Menu.PlayerMenu:Update() (at Assets/SEE/GameObjects/Menu/PlayerMenu.cs:194)

Steps to reproduce:

  1. Delete a node with edges.
  2. Restore the node and its edges using undo.
  3. Move the node.
  4. When finishing the move, the node becomes transparent.

The following video illustrates this error.

Bug_Delete_Edges.mp4