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)