[Mono-bugs] [Bug 81376][Nor] New - SiteMapDataSource does not properly resolve CurrentNode

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Sat Apr 14 13:03:14 EDT 2007

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by mmorano at mikeandwan.us.


--- shadow/81376	2007-04-14 13:03:14.000000000 -0400
+++ shadow/81376.tmp.31581	2007-04-14 13:03:14.000000000 -0400
@@ -0,0 +1,47 @@
+Bug#: 81376
+Product: Mono: Class Libraries
+Version: 1.2
+OS Details: 
+Status: NEW   
+Priority: Normal
+Component: Sys.Web
+AssignedTo: mhabersack at novell.com                            
+ReportedBy: mmorano at mikeandwan.us               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: SiteMapDataSource does not properly resolve CurrentNode
+This bug is related to #81366.  If the SiteMapDataSource is configured to
+start at the current node, this control tries to obtain the current node by
+querying the default provider.  This was just resolved in the SiteMap class
+to properly scan all providers.
+The patch below addresses only this problem, though I feel there might be
+other changes that should be applied to address similar issues, for
+different configurations of this control.  (For example, the last line of
+the patch below performs a Provider.FindSiteMapNode(url) - should this
+perform a scan across all providers?)
+Here is the patch:
+Index: System.Web.UI.WebControls/SiteMapDataSource.cs
+--- System.Web.UI.WebControls/SiteMapDataSource.cs      (revision 75700)
++++ System.Web.UI.WebControls/SiteMapDataSource.cs      (working copy)
+@@ -185,7 +185,7 @@
+                        } else if (StartFromCurrentNode) {
+                                if (StartingNodeUrl.Length != 0)
+                                        throw new InvalidOperationException
+("StartingNodeUrl can't be set if StartFromCurrentNode is set to true.");
+-                               starting_node = Provider.CurrentNode;
++                               starting_node = SiteMap.CurrentNode;
+                        } else if (StartingNodeUrl.Length != 0) {
+                                string url = MapUrl (StartingNodeUrl);
+                                SiteMapNode node = Provider.FindSiteMapNode

More information about the mono-bugs mailing list