Details
-
Task
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
-
None
-
None
Description
A password protected .xlsx file can no longer be read because there's a bug in POI's ChunkedCipherInputStream:
@Override public int read() throws IOException { byte[] b = \{ 0 }; // FIXME: compare against -1 or 1? (bug 59893) return (read(b) == 1) ? -1 : b[0]; }
Reading with a byte[] works fine, but read() individual bytes returns -1 if the stream had something in it. Because of some recent changes...we now wrap the ChunkedCipherInputStream in a RereadableInputStream...whereas we didn't before...this wrapping is now calling read() at some point where the stream used to only be read(byte[]). We can fix this by wrapping the ChunkedCipherInputStream in a TikaInputStream...
I think this is significant enough to do a respin of 1.21-rc1...what do you think?