I've looked into this but I am still undecided what to do about it.
I don't like the concept of logging. Most of the time logging messages is a waste of resources. And then again they still don't provide exactly the information you need to fix a problem. Overall, I don't want to litter my code with logging statements for very rare corner cases like this.
I generally prefer to throw an IOException. However, in this particular context the IOException gets resolved as if a false positive archive file had been encountered, which is why you get these responses. Note that the Kernel and the drivers use temp files for other purposes too, not just accessing nested archive files. I cannot possibly handle all special cases. Even if I handle this special case, you can only get true or false from these boolean methods, so it doesn't help a lot.
As of now, I think I should probably throw an AssertionError or an IllegalStateException in this case. The app should then simply terminate with a nice stack trace clearly pointing out the problem. There is no easy way to recover from this error condition at runtime, but It's easy to fix at compile time.