OpenRA / OpenRA/OpenRA

Battlefield news crash when re-opening before content has loaded

Open
#14,898 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Crash Networking UI
Dominant language
C#
Stars
17.4k
Forks
3k
Avg merge
1d 12h
Merged PRs (30d)
14

Description

This happens if the news download is delayed due to network issues.

Exception of type `System.InvalidOperationException`: Attempted to attach a panel to an open dropdown
  at OpenRA.Mods.Common.Widgets.DropDownButtonWidget.AttachPanel (OpenRA.Widgets.Widget p, System.Action onCancel) [0x00192] in /Users/paul/src/OpenRA/OpenRA.Mods.Common//Widgets/DropDownButtonWidget.cs:114 
  at OpenRA.Mods.Common.Widgets.Logic.MainMenuLogic.OpenNewsPanel (OpenRA.Mods.Common.Widgets.DropDownButtonWidget button) [0x0001b] in /Users/paul/src/OpenRA/OpenRA.Mods.Common//Widgets/Logic/MainMenuLogic.cs:328 
  at OpenRA.Mods.Common.Widgets.Logic.MainMenuLogic+<LoadAndDisplayNews>c__AnonStorey2.<>m__2 () [0x0000c] in /Users/paul/src/OpenRA/OpenRA.Mods.Common//Widgets/Logic/MainMenuLogic.cs:317 
  at OpenRA.Mods.Common.Widgets.Logic.MainMenuLogic+<NewsDownloadComplete>c__AnonStorey5.<>m__0 () [0x0009c] in /Users/paul/src/OpenRA/OpenRA.Mods.Common//Widgets/Logic/MainMenuLogic.cs:411 
  at OpenRA.Primitives.ActionQueue.PerformActions (System.Int64 currentTime) [0x0008b] in /Users/paul/src/OpenRA/OpenRA.Game//Primitives/ActionQueue.cs:53 
  at OpenRA.Game.LogicTick () [0x0000d] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:621 
  at OpenRA.Game.Loop () [0x000d6] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:759 
  at OpenRA.Game.Run () [0x00042] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:799 
  at OpenRA.Game.InitializeAndRun (System.String[] args) [0x00011] in /Users/paul/src/OpenRA/OpenRA.Game//Game.cs:253 
  at OpenRA.Program.Main (System.String[] args) [0x00050] in /Users/paul/src/OpenRA/OpenRA.Game//Support/Program.cs:37

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with MainMenuLogic.cs around LoadAndDisplayNews, OpenNewsPanel, and NewsDownloadComplete, then inspect DropDownButtonWidget.cs around AttachPanel. Reproduce with a delayed news download and reopen the news panel before loading completes; done means reopening no longer raises the InvalidOperationException.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
game-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.