When I added -spawnChild to tika-server, I followed the pattern in ForkParser of redirecting stdout/stderr for the parent to listen to output from the child process. This relies on the parsers not grabbing a pointer to stdout/stderr before we redirect it. However, it is possible for parsers to grab stdout/stderr during static initialization, as happens with log4j configured to write to stdout/stderr.
This means that the communication channel from child to parent is unreliable. Let's switch child to parent communication in -spawnChild to a shared mmap'd file.