Pipeline tool (dev): open a project = exception

Using dev snapshot of the pipeline tool, since almost last week, I got this exception when using open (also new or import):

System.NullReferenceException: La référence d’objet n’est pas définie à une instance d’un objet.
à Eto.WinForms.Forms.WindowsFileDialog2.<>c.<SetFilters>b__9_0(FileDialogFilter f) à System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
à System.String.Join(String separator, IEnumerable1 values) à Eto.WinForms.Forms.WindowsFileDialog2.SetFilters()
à Eto.WinForms.Forms.WindowsFileDialog`2.ShowDialog(Window parent)
à MonoGame.Tools.Pipeline.MainView.AskOpenProject(String& projectFilePath) dans M:\c#\MonoGame\MonoGame\MonoGame-develop\MonoGame\Tools\Pipeline\Eto\MainWindow.cs:ligne 67
à MonoGame.Tools.Pipeline.PipelineController.OpenProject() dans M:\c#\MonoGame\MonoGame\MonoGame-develop\MonoGame\Tools\Pipeline\Common\PipelineController.cs:ligne 221
à MonoGame.Tools.Pipeline.MainView.OnOpenProjectClick(Object sender, EventArgs e) dans M:\c#\MonoGame\MonoGame\MonoGame-develop\MonoGame\Tools\Pipeline\Windows\MainView.cs:ligne 509
à System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
à System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
à System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ToolStrip.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Pipeline tool from official MG 3.5.1 build works (fortunately for me).
Projects are build using protobuild for WinDx platform on win7 64b.

I’ve tried to use VS 2015 WD but it is unable to run the debug session, executable is allegedly “locked” by some unidentified process, VS can’t generate it :/, resource monitor doesn’t show any such process (looks like VS mess up with itself in this case !)
EDIT: one pipeline process was running (??) in the background preventing the file to be modified/deleted.
Exception occured in AskOpenProject (MainWindow.cs) method on line:
var result = dialog.ShowDialog(null) == Eto.Forms.DialogResult.Ok;

Anyone have this too ?
Should I report an issue ?


I have looked into the code.
A call to Init() in MainWindow.cs is missing, so
dialog.CurrentFilter = _mgcbFileFilter;
filters with a null value… and ShowDialogFails

Issue reporting should be done :wink:

just done (#4780), thanks.

EDIT: by the way, it sounds like a regression to me, some PR has been accepted but not tested enough. as pipeline is quite critical in asset management, some testing may be added IMHO.

I think it cannot be tested automatically by the build server as it is events based. But a method with 0 reference should trigger at least something between an error and a warning to the developper
Wait you added this in the gui but never call it.

I agree (there is some gui testing tool but, they’re either expensive or doesn’t work so well), but a manual test plan can be made (new project, open project, import, build, rebuild, etc) with a dedicated set of assets which are known to be ok. Such test plan could be done by anyone, just download the assets set, the plan, do all action thoroughly, fill the result => review by devs.

But you certainly know that in project management, a task left free, assigned to noone… Will be done by noone :wink: