Андрей (andy) wrote in changelog,
Андрей
andy
changelog

[livejournal] r23443: LJSUP-14524 ([internal] show stack trace...

Committer: ailyin
LJSUP-14524 ([internal] show stack traces for unhandled controller exceptions for privileged users)
U   trunk/cgi-bin/Apache/LiveJournal.pm
Modified: trunk/cgi-bin/Apache/LiveJournal.pm
===================================================================
--- trunk/cgi-bin/Apache/LiveJournal.pm	2012-12-07 13:51:55 UTC (rev 23442)
+++ trunk/cgi-bin/Apache/LiveJournal.pm	2012-12-10 07:14:47 UTC (rev 23443)
@@ -443,9 +443,32 @@
 
             LJ::Lang::current_language(undef);
 
-            my $response =
-                $controller->process(\@args) || $controller->default_response;
+            my $response;
+            my $controller_result = eval {
+                local $SIG{'__DIE__'} = \&Carp::confess;
+                $response = $controller->process(\@args) ||
+                    $controller->default_response;
+                1;
+            };
 
+            unless ($controller_result) {
+                my $error  = "$@";
+                my $remote = LJ::get_remote();
+
+                if ( $LJ::IS_DEV_SERVER ||
+                    ( $remote && $remote->show_raw_errors ) )
+                {
+                    $response = LJ::Response::Template->new(
+                        'file'            => 'templates/CodeError.tmpl',
+                        'params'          => { 'error' => $error },
+                        'use_site_scheme' => 1,
+                        'title'           => 'Code Error',
+                    );
+                } else {
+                    die $error;
+                }
+            }
+
             # processing result of controller
             my $result = eval { $response->output };
 

Tags: ailyin, andy, livejournal, pm
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments