diff --git a/web/plugins/buildrepository/buildrepository.php b/web/plugins/buildrepository/buildrepository.php index 5172a255f2..60d49f4e32 100644 --- a/web/plugins/buildrepository/buildrepository.php +++ b/web/plugins/buildrepository/buildrepository.php @@ -779,8 +779,14 @@ public function InterpretRequest($request) { $this->initPackages(); - $buildNumber = intval(substr($tokens[0], 5)); - $FrontController->enqueueAction($this, array('build' => $buildNumber)); + $buildId = intval(substr($tokens[0], 5)); + + // Is this a known event? + $build = $this->buildByUniqueId($buildId); + if(!$build instanceof BuildEvent) + $buildId = 0; // Show the index. + + $FrontController->enqueueAction($this, array('build' => $buildId)); return true; // Eat the request. } @@ -819,15 +825,12 @@ private function outputBuildStreamNavigation(&$event) public function buildByUniqueId($uniqueId=0) { $uniqueId = intval($uniqueId); - $build = NULL; if($uniqueId > 0) + foreach($this->builds as &$build) { - foreach($this->builds as &$build) - { - if($uniqueId === $build->uniqueId()) break; - } + if($uniqueId === $build->uniqueId()) return $build; } - return $build; + return NULL; } private function outputEventList($maxEvents=10)