Water error when accessing Project => Settings => Settings

Update: NEVER MIND! After posting this, and figuring out how to connect to Crossbox from Water, I was able to compile successfully and now this problem has gone away! Hopefully this helps someone else.

Note: Definitely not an emergency, as I am just trying to experiment and learn, so please continue to enjoy your holidays!

I created a new Mercury MacOS project in Water (10.0.0.2587). When I try to access the project’s settings, I get the following error:
Object reference not set to an instance of an object.
at RemObjects.Fire.ProjectSystem.Settings.ProjectSettingsCrossBoxDevicePicker.valuesForProject____configuration(Project project, String configurationName)
at RemObjects.Fire.ProjectSystem.Views.ProjectSettingsViewController.filterSettings()
at RemObjects.Fire.ProjectSystem.Views.ProjectSettingsViewController.dataChanged()
at RemObjects.Fire.ProjectSystem.Views.ProjectSettingsViewController…ctor(Project aProject)
at RemObjects.Fire.ProjectSystem.SettingsNode.get_viewController()
at RemObjects.Fire.App.SolutionDocumentWindowController.selectNode____byNavigatingBackwards__shouldActivate__forceReselect__clearForwardNavigationStack__metaData(Node item, Boolean byNavigatingBackwards, Boolean shouldActivate, Boolean force, Boolean clearStack, Dictionary2 metaData) at RemObjects.Fire.App.SolutionDocumentWindowController.treeController____hasSelectedNode__shouldActivate__clearForwardNavigationStack(TreeController treeController, Node node, Boolean shouldActivate, Boolean clearForwardNavigationStack) at RemObjects.Fire.App.TreeController.doSelectNode____shouldActivate__clearForwardNavigationStack(Node node, Boolean shouldActivate, Boolean clearForwardNavigationStack) at RemObjects.Fire.App.TreeController.selectNode____clearForwardNavigationStack(Node node, Boolean clearForwardNavigationStack) at RemObjects.Fire.App.BaseTreeView.TreeView_SelectedItemChanged(Object sender, RoutedPropertyChangedEventArgs1 e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.Controls.TreeView.ChangeSelection(Object data, TreeViewItem container, Boolean selected)
at System.Windows.Controls.TreeViewItem.Select(Boolean selected)
at System.Windows.Controls.TreeViewItem.OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
at MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32 k, ICollectionView collectionView, Object newValue, Boolean isASubPropertyChange)
at MS.Internal.Data.ClrBindingWorker.OnSourcePropertyChanged(Object o, String propName)
at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
at System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(Object sender, PropertyChangedEventArgs args)
at RemObjects.Fire.App.NodeWrapper.raise_PropertyChanged(Object sender, PropertyChangedEventArgs e)
at RemObjects.Fire.App.NodeWrapper.set_isSelected(Boolean value)
at RemObjects.Fire.App.BaseTreeView.doSyncOutlineViewToNode(Node node)
at RemObjects.Fire.App.TreeController.doSyncOutlineViewToNode(Node node)
at RemObjects.Fire.App.TreeController.syncOutlineViewToNode(Node node)
at RemObjects.Fire.App.TreeController.syncSelection(Node node)
at RemObjects.Fire.App.TreeController.selectNode____clearForwardNavigationStack(Node node, Boolean clearForwardNavigationStack)
at RemObjects.Fire.App.SolutionDocumentWindowController.showProjectSettings(Object sender)
at RemObjects.Fire.App.SolutionDocumentWindowController.<get_ShowProjectSettingsCommand>b__0(Object sender)
at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Here’s the zip of the project, in case that matters.MacApp.zip (505.0 KB)

Thanks,

–Avonelle

Glad to hear; regardless, this should definitely to happen, of course, I’ll have a look.

Thanks, logged as bugs://85370

FWIW, reproduced.

And fixed, though this might be an underlying compiler bug; not sure yet. this code should not NRE, due do boolean short-circuit — but somehow it does…

                    if (crossBox?.IsLocal && crossBox.DoesSupportRosetta2)

bugs://85371: Echoes: problem with bool short-circuit.

Oh good! After I posted the update, it occurred to me you’d probably want to at least update it so that it didn’t cause that error.

–Avonelle

Of course, yeah. Already fixed for the next build.

bugs://85370 got closed with status fixed.