--- loncom/xml/lonxml.pm 2005/11/02 22:48:52 1.386 +++ loncom/xml/lonxml.pm 2005/11/10 21:38:27 1.388 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.386 2005/11/02 22:48:52 albertel Exp $ +# $Id: lonxml.pm,v 1.388 2005/11/10 21:38:27 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -527,7 +527,13 @@ sub inner_xmlparse { # $finaloutput.=&endredirection; # } - + if ($target eq 'grade') { &endredirection(); } + if ( $Apache::lonxml::redirection ) { + &error("Unclean exit of parser, text still being redirected. This is likely due to there being missing end tags."); + while ($Apache::lonxml::redirection) { + $finaloutput.=&endredirection(); + } + } if (($ENV{'QUERY_STRING'}) && ($target eq 'web')) { $finaloutput=&afterburn($finaloutput); } @@ -636,7 +642,7 @@ sub setup_globals { $Apache::lonxml::evaluate = 1; $Apache::lonxml::import = 1; } elsif ($target eq 'grade') { - &startredirection; + &startredirection(); #ended in inner_xmlparse on exit $Apache::lonxml::metamode = 0; $Apache::lonxml::evaluate = 1; $Apache::lonxml::import = 1; @@ -1450,7 +1456,12 @@ sub debug { if ($Apache::lonxml::debug eq "1") { $|=1; my $request=$Apache::lonxml::request; - if (!$request) { $request=Apache->request; } + if (!$request) { + eval { $request=Apache->request; }; + } + if (!$request) { + eval { $request=Apache2::RequestUtil->request; }; + } $request->print('
DEBUG:'.&HTML::Entities::encode($_[0],'<>&"')."
\n"); #&Apache::lonnet::logthis($_[0]); }