From bebce1812d0e1afb079bb4ca5539bb093a95cf32 Mon Sep 17 00:00:00 2001 From: Loic d'Anterroches Date: Sun, 23 Nov 2008 21:09:44 +0100 Subject: [PATCH] Fixed to handle exception nicely instead of crashing the view. --- src/IDF/Views/Source.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/IDF/Views/Source.php b/src/IDF/Views/Source.php index 3bfed35..9ffcec9 100644 --- a/src/IDF/Views/Source.php +++ b/src/IDF/Views/Source.php @@ -118,20 +118,17 @@ class IDF_Views_Source $branches = $scm->getBranches(); $commit = $match[2]; $request_file = $match[3]; + $fburl = Pluf_HTTP_URL_urlForView('IDF_Views_Source::treeBase', + array($request->project->shortname, + $branches[0])); if ('commit' != $scm->testHash($commit, $request_file)) { // Redirect to the first branch - $url = Pluf_HTTP_URL_urlForView('IDF_Views_Source::treeBase', - array($request->project->shortname, - $branches[0])); - return new Pluf_HTTP_Response_Redirect($url); + return new Pluf_HTTP_Response_Redirect($fburl); } $request_file_info = $scm->getFileInfo($request_file, $commit); if (!$request_file_info) { // Redirect to the first branch - $url = Pluf_HTTP_URL_urlForView('IDF_Views_Source::treeBase', - array($request->project->shortname, - $branches[0])); - return new Pluf_HTTP_Response_Redirect($url); + return new Pluf_HTTP_Response_Redirect($fburl); } if ($request_file_info->type != 'tree') { $info = self::getMimeType($request_file_info->file); @@ -155,7 +152,11 @@ class IDF_Views_Source $page_title = $bc.' - '.$title; $cobject = $scm->getCommit($commit); $tree_in = in_array($commit, $branches); - $res = new Pluf_Template_ContextVars($scm->filesAtCommit($commit, $request_file)); + try { + $res = new Pluf_Template_ContextVars($scm->filesAtCommit($commit, $request_file)); + } catch (Exception $e) { + return new Pluf_HTTP_Response_Redirect($fburl); + } // try to find the previous level if it exists. $prev = split('/', $request_file); $l = array_pop($prev);