From ead1824d3e0f18b62ab157db13bfae3a724c1a24 Mon Sep 17 00:00:00 2001 From: Jakub Zalas Date: Tue, 8 Mar 2016 15:56:51 +0000 Subject: [PATCH] [Finder] Partially revert #17134 to fix a regression --- .../Component/Finder/Iterator/FilterIterator.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/Finder/Iterator/FilterIterator.php b/src/Symfony/Component/Finder/Iterator/FilterIterator.php index 24adeb68f9..3c3c3fbec0 100644 --- a/src/Symfony/Component/Finder/Iterator/FilterIterator.php +++ b/src/Symfony/Component/Finder/Iterator/FilterIterator.php @@ -39,11 +39,18 @@ abstract class FilterIterator extends \FilterIterator while ($iterator instanceof \OuterIterator) { $innerIterator = $iterator->getInnerIterator(); - if ($innerIterator instanceof \FilesystemIterator) { + if ($innerIterator instanceof RecursiveDirectoryIterator) { + // this condition is necessary for iterators to work properly with non-local filesystems like ftp + if ($innerIterator->isRewindable()) { + $innerIterator->next(); + $innerIterator->rewind(); + } + } elseif ($innerIterator instanceof \FilesystemIterator) { $innerIterator->next(); $innerIterator->rewind(); } - $iterator = $iterator->getInnerIterator(); + + $iterator = $innerIterator; } parent::rewind();