]> git.mxchange.org Git - friendica.git/commitdiff
Handle reading empty file in ReversedFileReader
authorfabrixxm <fabrix.xm@gmail.com>
Mon, 27 Sep 2021 10:14:19 +0000 (12:14 +0200)
committerfabrixxm <fabrix.xm@gmail.com>
Mon, 27 Sep 2021 10:14:19 +0000 (12:14 +0200)
fix #10766

src/Util/ReversedFileReader.php
tests/datasets/log/empty.friendica.log.txt [new file with mode: 0644]
tests/src/Model/Log/ParsedLogIteratorTest.php

index bdc31f0cba158f3b5f86796cd54ed8fb537f8d41..92c8cced184e1db5c8b602815ed3a4a9373af302 100644 (file)
@@ -95,6 +95,9 @@ class ReversedFileReader implements \Iterator
                        if ($this->pos == 0) {
                                return array_pop($buffer);
                        }
+                       if (is_null($buffer)) {
+                               return null;
+                       }
                        if (count($buffer) > 1) {
                                return array_pop($buffer);
                        }
diff --git a/tests/datasets/log/empty.friendica.log.txt b/tests/datasets/log/empty.friendica.log.txt
new file mode 100644 (file)
index 0000000..e69de29
index df9f8393a97b81ae03d9e6331b1d7022cd14c840..2ac53661b9cab5edb52b4ca09ecdab63fa5a7002 100644 (file)
@@ -145,4 +145,16 @@ class ParsedLogIteratorTest extends TestCase
                $pls = iterator_to_array($this->pli, false);
                self::assertCount(0, $pls);
        }
+
+       public function testEmptyLogFile()
+       {
+               $logfile = dirname(__DIR__) . '/../../datasets/log/empty.friendica.log.txt';
+
+               $reader    = new ReversedFileReader();
+               $pli = new ParsedLogIterator($reader);
+               $pli->open($logfile);
+
+               $pls = iterator_to_array($pli, false);
+               self::assertCount(0, $pls);
+       }
 }