Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.9.0
-
None
Description
Problem:
The map `org.apache.commons.vfs2.FileSystemOptions#options` is TreeMap. The datastructure is not thread-safe and resulting in situations like this when used in multithreaded environments.
Workaround:
As a workaround, we have to synchronize the `FileSystemOptions` in all the places of the code.
Solution:
- If there is no issue, the constructor `
protected FileSystemOptions(Map<FileSystemOptionKey, Object> options)` can be made public, so that users will have an option to pass a synchronized map when they have to. * Or, wrap the `TreeMap` instance with `java.util.Collections#synchronizedMap`, ensuring thread safety at the core.