Hi Jaikiran,

Again, thank you for your efforts here.

Is there a CSR for this yet?  This will need to approved prior to moving 
forward with committing the feature.

I can sponsor once everything has been approved and finalized.




———
@implSpec This method is a no-op if this compressor has already
 886      * been previously closed,

————

Please remove “already” in both the close() and end() methods.  I believe the 
preference is the @implSpec and its relatives are on their own line as in 
https://openjdk.java.net/jeps/8068562 <https://openjdk.java.net/jeps/8068562> 
and was done for @apiNote earlier

 - Undefined behavior after close()/end()

I am not convinced the new wording is an improvement and I know Stuart was not 
thrilled with the existing wording.  However given the classes may be 
subclassed, I am not sure we  can truly specify the behavior which could be why 
the original authors used that wording.   Stuart thoughts?


Outside of the @ImplSpec, I am not sure the initial wording for end() and 
close() really need to differ:

end():

        Closes the decompressor and discards any unprocessed input.

close():

Releases resources held by this decompressor and discards any unprocessed 
input.This method should be called when the decompressor is no longer needed



> On Jul 9, 2019, at 9:18 AM, Jaikiran Pai <jai.forums2...@gmail.com> wrote:

> 
> Can I please get a review and a sponsor for the patch that implements
> the enhancement noted in https://bugs.openjdk.java.net/browse/JDK-8225763 ?
> 
> There has been a recent discussion about this change in the
> core-libs-dev mailing list here[1]. The latest version of the patch for
> this change is now available at [2].
> 
> Here's a summary of what's contained in this patch:
> 
> - The Inflater/Deflater class now implements AutoCloseable
> 
> - The class level javadoc of both these classes has been to updated to
> use newer style of code, with try-with-resources, for the example
> contained in that javadoc. The @apiNote in these class level javadoc has
> also been updated to mention the use of close() method for releasing
> resources.
> 
> - The javadoc of end() method in both these classes has been updated to
> encourage the use of close() method instead of this one. It now also has
> a @implSpec which states that it's a no-op if called more than once.
> 
> In addition, this javadoc has also been updated to replace the
> "undefined behaviour" statement with a mention that the usage of the
> Inflater/Deflater instance after a call to end() may throw an exception
> in those subsequent usages. Please note that, there's no such explicit
> mention in the javadoc of the (newly added) close() method because IMO,
> it isn't needed for close() since I think it's kind of implied that a
> closed resource can no longer be used for further operations.

We need to be specific in close()  also for clarity
> 
> - The new close() method has been added along with javadoc which uses an
> @implSpec to state that it internally calls end()
> 
> - TotalInOut.java test has been updated to use the new
> try-with-resources construct for the inflater and deflater it uses.

Please update @biug to include the bug number
> 
> - A couple of new (testng) test classes have been added to test various
> scenarios where close() and end() method get called. These test mostly
> focus on ensuring that the close() and end(), either implicitly or
> explicitly, get called the right number of times on the subclasses of
> Inflater/Deflater.

Overall they look OK.  In your tests, you are testing the number of calls for 
the sub-classes not for Deflate/Inflate so I would either update your comments 
to clarify that or pull them into their own test methods


Again, thank you for your efforts here.

Best
Lance
 <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif> 
<http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| 
Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
lance.ander...@oracle.com <mailto:lance.ander...@oracle.com>



Reply via email to