ZipArchiveInputStream.getNextZipEntry() currently returns null if an invalid entry is encountered. Thus, it's not possible to differentiate between "no more entries" and "invalid entry encountered" conditions.
Instead, it should throw an exception if an invalid entry is encountered.
I've created a test case and fix. I will submit a pull request shortly.