On Thu, 1 Sep 2022 17:56:03 GMT, Lance Andersen <lan...@openjdk.org> wrote:

>>> It's better. Do you need to explicitly say "For all other cases"?
>> 
>> I thought it is worth being specific,  but happy to leave it out if you and 
>> others prefer
>>> 
>>> My original comment was more about explaining `getManifest()` and 
>>> `getNextEntry()` in the same if. It's still doable.
>> 
>> I think the challenge is there is not an exact match to the behavior between 
>> `getManifest()` and `getNext[Jar]Entry()`.    We also have the case if the 
>> manifest is the first entry and META-INF/ is the 2nd or later entry, then  
>> META-INF/ will be returned by `JarInputStream`.  ` ZipInputStream` will 
>> return all entries which differs from `JarInputStream` so thought it made 
>> sense to be specific but perhaps I am overthinking it.
>
> I could do tweak further to say:
> 
> _`getManifest()` will return the Manifest if it is the first entry or 
> META-INF/ is the first entry and the Manifest is the second entry within the 
> Jar file.   When the Manifest is returned by `getManifest()`,  the 
> `getNextEntry()` and `getNextJarEntry()` methods will not return the Manifest_
> 
> Is that more what you were thinking?

I read the current draft and it makes we wonder if it would be simpler to just 
replace the class description with something like this:


 * The JarInputStream class is used to read the contents of a JAR file from
 * an input stream. It extends ZipInputStream with support for reading an 
optional
 * manifest named "META-INF/MANIFEST.MF" when it is found at as the first entry 
in
 * the stream. If the first entry in the stream is "META-INF/" then it is 
skipped,
 * in which case the manifest is found if it is the second entry in the stream.
 *
 * JarInputStream defines the getNextJarEntry() method to iterate through the
 * JAR file entries in the stream. The method reads the metadata for the next 
JAR
 * file entry in the stream and positions the input stream to read the entry's
 * file data. The first entry found by getNextJarEntry() (or getNextEntry())
 * will follow the manifest when the manifest is the first entry in the JAR
 * file (or the second entry when the first entry is "META-INF/").

-------------

PR: https://git.openjdk.org/jdk/pull/10045

Reply via email to