Author: mhabersack
Date: 2007-04-05 04:14:15 -0400 (Thu, 05 Apr 2007)
New Revision: 75419

Modified:
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
   trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
Log:
2007-04-05  Marek Habersack  <[EMAIL PROTECTED]>

        * SiteMapDataSource.cs: fix GetStartNode for situations when the
        current URL is not defined in the sitemap file. Fixes bug
        #81314. Patch from Mike Morano <[EMAIL PROTECTED]>.



Modified: trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-04-05 08:14:02 UTC (rev 75418)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog      
2007-04-05 08:14:15 UTC (rev 75419)
@@ -1,3 +1,9 @@
+2007-04-05  Marek Habersack  <[EMAIL PROTECTED]>
+
+       * SiteMapDataSource.cs: fix GetStartNode for situations when the
+       current URL is not defined in the sitemap file. Fixes bug
+       #81314. Patch from Mike Morano <[EMAIL PROTECTED]>.
+
 2007-04-03  Marek Habersack  <[EMAIL PROTECTED]>
 
        * BaseDataBoundControl.cs: adjust for lame specs on MSDN.

Modified: 
trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs
===================================================================
--- trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs   
2007-04-05 08:14:02 UTC (rev 75418)
+++ trunk/mcs/class/System.Web/System.Web.UI.WebControls/SiteMapDataSource.cs   
2007-04-05 08:14:15 UTC (rev 75419)
@@ -182,22 +182,22 @@
                        if (viewPath != null && viewPath.Length != 0) {
                                string url = MapUrl (StartingNodeUrl);
                                return Provider.FindSiteMapNode (url);
-                       }
-                       else if (StartFromCurrentNode) {
+                       } 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;
-                       }
-                       else if (StartingNodeUrl.Length != 0) {
+                       } else if (StartingNodeUrl.Length != 0) {
                                string url = MapUrl (StartingNodeUrl);
                                SiteMapNode node = Provider.FindSiteMapNode 
(url);
                                if (node == null) throw new ArgumentException 
("Can't find a site map node for the url: " + StartingNodeUrl);
 
                                starting_node = node;
-                       }
-                       else
+                       } else
                                starting_node = Provider.RootNode;
 
+                       if (starting_node == null)
+                               return Provider.RootNode;
+                       
                        int i;
                        if (StartingNodeOffset < 0) {
                                for (i = StartingNodeOffset; i < 0; i ++) {
@@ -205,8 +205,7 @@
                                                break;
                                        starting_node = 
starting_node.ParentNode;
                                }
-                       }
-                       else if (StartingNodeOffset > 0) {
+                       } else if (StartingNodeOffset > 0) {
                                List<SiteMapNode> pathCurrentToStartingNode = 
new List<SiteMapNode> ();
                                SiteMapNode tmpNode = Provider.CurrentNode;
                                while (tmpNode != null && tmpNode != 
starting_node) {

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to