I got an error alert when making a “Quick Repair and Rebuild” regarding a missing file
Warning: opendir(cache/xml): failed to open dir: No such file or directory occurred in D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php
I have error report on max and to see erros on the browser.
Using XAMPP local install on windows 7 for testing (XAMPP root at D:\xampp\htdocs\suitecrm ).
System Settings for SuiteCRM
- Display stack trace of errors: ON
- Log Level: Debug
Note: All other rebuilds are ok (Message at the end is: Database tables are synced with vardefs )
Is this a bug or is just me?
Message from Quick Repair and Rebuild screen
Clearing XML files from cache...done
Warning: opendir(cache/xml,cache/xml): occurred in D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php on line 451 [2015-03-18 14:12:04] display_stack_trace caller, file: D:\xampp\htdocs\suitecrm\include\utils.php line#: 3254
[L:](:StackTraceErrorHandler)
D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php[L:451](:opendir)
D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php[L:255](RepairAndClear:_clearCache)
D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php[L:112](RepairAndClear:clearXMLfiles)
D:\xampp\htdocs\suitecrm\modules\Administration\views\view.repair.php[L:58](RepairAndClear:repairAndClearAll)
D:\xampp\htdocs\suitecrm\include\MVC\View\SugarView.php[L:143](ViewRepair:display)
D:\xampp\htdocs\suitecrm\include\MVC\Controller\SugarController.php[L:348](SugarView:process)
D:\xampp\htdocs\suitecrm\include\MVC\Controller\SugarController.php[L:295](SugarController:processView)
D:\xampp\htdocs\suitecrm\include\MVC\SugarApplication.php[L:92](SugarController:execute)
D:\xampp\htdocs\suitecrm\index.php[L:49](SugarApplication:execute)
Warning: opendir(cache/xml): failed to open dir: No such file or directory occurred in D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php on line 451 [2015-03-18 14:12:04] display_stack_trace caller, file: D:\xampp\htdocs\suitecrm\include\utils.php line#: 3254
[L:](:StackTraceErrorHandler)
D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php[L:451](:opendir)
D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php[L:255](RepairAndClear:_clearCache)
D:\xampp\htdocs\suitecrm\modules\Administration\QuickRepairAndRebuild.php[L:112](RepairAndClear:clearXMLfiles)
D:\xampp\htdocs\suitecrm\modules\Administration\views\view.repair.php[L:58](RepairAndClear:repairAndClearAll)
D:\xampp\htdocs\suitecrm\include\MVC\View\SugarView.php[L:143](ViewRepair:display)
D:\xampp\htdocs\suitecrm\include\MVC\Controller\SugarController.php[L:348](SugarView:process)
D:\xampp\htdocs\suitecrm\include\MVC\Controller\SugarController.php[L:295](SugarController:processView)
D:\xampp\htdocs\suitecrm\include\MVC\SugarApplication.php[L:92](SugarController:execute)
D:\xampp\htdocs\suitecrm\index.php[L:49](SugarApplication:execute)
Clearing Unified Search Cache...done
The code on the \modules\Administration\QuickRepairAndRebuild.php is
//// Recursively unlink all files of the given $extension in the given $thedir.
//
private function _clearCache($thedir, $extension)
{
if ($current = @opendir($thedir)) {
while (false !== ($children = readdir($current))) {
if ($children != "." && $children != "..") {
if (is_dir($thedir . "/" . $children)) {
$this->_clearCache($thedir . "/" . $children, $extension);
}
elseif (is_file($thedir . "/" . $children) && (substr_count($children, $extension))) {
unlink($thedir . "/" . $children);
}
}
}
}
}