internal bool NavigateToEntry(JournalEntry entry) 
        {
            if (entry == null)
            {
                Debug.Fail("Tried to navigate to a null JournalEntry."); 
                return false;
            } 
            if (!Journal.IsNavigable(entry)) 
            {
                Debug.Fail("Tried to navigate to a non-navigable journal entry."); 
                return false;
            }

            NavigationService navigationService = _rootNavSvc.FindTarget(entry.NavigationServiceId); 
            Debug.Assert(navigationService != null, "NavigationService cannot be null for journal navigations");
 
            NavigationMode mode = Journal.GetNavigationMode(entry); 
            bool navigated = false;
            try 
            {
                navigated = entry.Navigate(navigationService.INavigatorHost, mode);
            }
            finally 
            {
                if (!navigated) 
                { 
                    AbortJournalNavigation();
                } 
            }
            return navigated;
        }