Fix serialization on multiple modules in parallel
NullAway version: 0.9.8
Following PR26 which enables Annotator to perform analysis on downstream dependencies when analyzing a target, it is required to run NullAway on a set of modules. Since running NullAway on each module is completely independent of one another, in an environment where multiple execution cores are available, we can perform the analysis on all modules in parallel. With the current implementation, each instance of NullAway at the initialization stage, will clear any existing files at the predefined paths in the output directory. This behavior will limit the parallelization technique and forces to run each instance with a different configuration to avoid any race / conflict between instances.
An alternative approach, is to find a unique configuration (primarily a unique output directory) for all serialized files for all NullAway instances, and each instance use a UUID prefix for the serialized outputs. Any tool using these info, can retrieve these data using the postfix (-errors.tsv, -fixes.tsv).