On Mon, Mar 6, 2023 at 8:45 PM Alan Bateman <[email protected]> wrote:
> Changing ZOS.putNextEntry to ignore the method/size provided by the
> caller would change long standing behavior, and Hyrum's Law has it that
> somebody will notice.
I was not thinking of changing anything if the caller actually specified a
method. This would be just for the default/unspecified case, in which case
ZipEntry.method is -1.
So:
if (e.method == -1) {
if (e.isDirectory()) {
// New code:
e.setMethod(STORED);
e.setSize(0);
e.setCrc(0);
} else {
// Today's code:
e.method = method; // use default method
}
}
But I guess this doesn't completely alleviate concerns, since there might
be code out there doing:
zo.putNextEntry("directory/");
zo.write("Hello".getBytes());
(This would be very weird code, but people might have found it convenient
to attach data to directories somehow).
This may be something for an API note rather than
> an implementation change.
>
Am I right that this would not be a specification change, so it would not
require a CSR?
Thanks,