Dale Emery created GEODE-8572:
---------------------------------

             Summary: LogExporter throws if a directory matches its file 
selector
                 Key: GEODE-8572
                 URL: https://issues.apache.org/jira/browse/GEODE-8572
             Project: Geode
          Issue Type: Bug
          Components: gfsh
    Affects Versions: 1.13.0
            Reporter: Dale Emery


{{LogExporter}} tries to read and export any directory entry whose name is 
accepted by its log file selector predicate. The predicate accepts any entry 
whose name, when converted to lower case, contains ".log". If one of those 
entries is directory, the predicate accepts it anyway. When {{LogExporter}} 
attempts to create a {{FileReader}}  read it, the {{FileReader}} constructor 
throws {{FileNotFoundException}}.

There is a stat file selector predicate that works similarly.

{{LogExporter}}'s log and stat file selector predicates should accept only 
files, and not directories. And perhaps the should accept only files whose 
names _end_ in the appropriate extension, rather than _containing_ the 
characters. The predicates are defined in {{LogExporter}}'s {{findLogFiles()}} 
and {{findStatFiles()}} methods.

I discovered this defect by running {{LogExporterIntegrationTest}} on macOS. 
Each test's preparation writes some to-be-exported files into a temporary 
directory that, on macOS, may contain numerous other files and directories. One 
of those directories (e.g. 
/var/folders/yz/6y59fxln38d7lf2jxng1zgg40000gn/T/com.apple.LoginUserService), 
which matches the {{LogExporter}}'s predicate.

These tests should also be changed to write their to-be-exported files to a 
directory that is known to be empty.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to