From 3ba0434d6d7a7518d505f950cdb22712c8e6c8f5 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Wed, 13 Oct 2010 01:15:13 +0000 Subject: [PATCH] BUGFIX: Recover if a manifestClassParse file doesn't have the necessary content. (from r101866) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@112043 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/ManifestBuilder.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/core/ManifestBuilder.php b/core/ManifestBuilder.php index e7f5d71d6..018c6c6aa 100644 --- a/core/ManifestBuilder.php +++ b/core/ManifestBuilder.php @@ -418,10 +418,20 @@ class ManifestBuilder { // were upgrading their sites $fileMD5 = md5($file); $parseCacheFile = TEMP_FOLDER . "/manifestClassParse-" . str_replace(array("/", ":", "\\", "."), "_", basename($filename)) . "-$fileMD5"; - if(!file_exists($parseCacheFile)) { + if(file_exists($parseCacheFile)) { + include($parseCacheFile); + // Check for a bad cache file + if(!isset($classes) || !isset($interfaces) || !is_array($classes) || !is_array($interfaces)) { + unset($classes); + unset($interfaces); + } + } + + // Either the parseCacheFile doesn't exist, or its bad + if(!isset($classes)) { $tokens = token_get_all($file); - $classes = self::getClassDefParser()->findAll($tokens); - $interfaces = self::getInterfaceDefParser()->findAll($tokens); + $classes = (array)self::getClassDefParser()->findAll($tokens); + $interfaces = (array)self::getInterfaceDefParser()->findAll($tokens); $cacheContent = '