diff --git a/lib/WebGUI/Asset/Wobject/Navigation.pm b/lib/WebGUI/Asset/Wobject/Navigation.pm index 19c13a0da..a2d7f1260 100644 --- a/lib/WebGUI/Asset/Wobject/Navigation.pm +++ b/lib/WebGUI/Asset/Wobject/Navigation.pm @@ -412,7 +412,7 @@ sub view { $rules{assetToPedigree} = $current if (isIn("pedigree",@includedRelationships)); $rules{ancestorLimit} = $self->get("ancestorEndPoint"); $rules{orderByClause} = 'rpad(asset.lineage, 255, 9) desc' if ($self->get('reversePageLoop')); - my $assets = $start->getLineage(\@includedRelationships,\%rules); + my $assetIter = $start->getLineageIterator(\@includedRelationships,\%rules); my $currentLineage = $current->get("lineage"); my $lineageToSkip = "noskip"; my $absoluteDepthOfLastPage; @@ -420,7 +420,15 @@ sub view { my %lastChildren; my $previousPageData = undef; my $eh = $self->session->errorHandler; - while ( my $asset = $assets->() ) { + while ( 1 ) { + my $asset; + eval { $asset = $assetIter->() }; + if ( my $x = WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) { + $self->session->log->error($x->full_message); + next; + } + last unless $asset; + # skip pages we shouldn't see my $pageLineage = $asset->get("lineage"); next if ($pageLineage =~ m/^$lineageToSkip/);