{
$filename = $this->configDir . '/' . self::CONFIG_DATA_FILE;
- if (file_exists($filename)) {
+ if (file_exists($filename) && (filesize($filename) > 0)) {
// The fallback empty return content
$content = '<?php return [];';
*
* Any exclusive locking (LOCK_EX) would need to wait until all LOCK_SHs are unlocked
*/
- $configStream = fopen($filename, 'r');
+ if (($configStream = @fopen($filename, 'r')) === false) {
+ throw new ConfigFileException(sprintf('Cannot open file "%s" in mode r', $filename));
+ }
+
try {
if (flock($configStream, LOCK_SH)) {
+ if (($filesize = filesize($filename)) === 0) {
+ return;
+ }
+
$content = fread($configStream, filesize($filename));
if (!$content) {
throw new ConfigFileException(sprintf('Couldn\'t read file %s', $filename));
self::assertNull($configCache->get('system', 'default_timezone'));
}
+
+ /**
+ * Test for empty node.config.php
+ */
+ public function testEmptyFile()
+ {
+ $this->delConfigFile('node.config.php');
+
+ vfsStream::newFile('node.config.php')
+ ->at($this->root->getChild('config'))
+ ->setContent('');
+
+ $configFileManager = (new Config())->createConfigFileManager($this->root->url());
+ $configCache = new Cache();
+
+ $configFileManager->setupCache($configCache);
+
+ self::assertEquals(1,1);
+ }
}