> Can I please get a review of this enhancement which proposes to enhance 
> `java.util.zip.Deflater/Inflater` classes to now implement `AutoCloseable`?
> 
> The actual work for this was done a few years back when we discussed the 
> proposed approaches and then I raised a RFR. At that time I couldn't take 
> this to completion. The current changes in this PR involve the implementation 
> that was discussed at that time and also have implemented the review 
> suggestions from that time. Here are those previous discussions and reviews:
> 
> https://mail.openjdk.org/pipermail/core-libs-dev/2019-June/061079.html
> https://mail.openjdk.org/pipermail/core-libs-dev/2019-July/061177.html
> https://mail.openjdk.org/pipermail/core-libs-dev/2019-July/061229.html
> 
> To summarize those discussions, we had concluded that:
> - `Deflater` and `Inflater` will implement the `AutoCloseable` interface
> -  In the `close()` implementation we will invoke the `end()` method (`end()` 
> can be potentially overridden by subclasses).
> - `close()` will be specified and implemented to be idempotent. Calling 
> `close()` a second time or more will be a no-op.
> - Calling `end()` and then `close()`, although uncommon, will also support 
> idempotency and that `close()` call will be a no-op.
> - However, calling `close()` and then `end()` will not guarantee idempotency 
> and depending on the implementing subclass, the `end()` may throw an 
> exception.
> 
> New tests have been included as part of these changes and they continue to 
> pass along with existing tests in tier1, tier2 and tier3. When I had 
> originally added these new tests, I hadn't used junit. I can convert them to 
> junit if that's preferable.
> 
> I'll file a CSR shortly.

Jaikiran Pai has updated the pull request with a new target base due to a merge 
or a rebase. The incremental webrev excludes the unrelated changes brought in 
by the merge/rebase. The pull request contains 26 additional commits since the 
last revision:

 - test code comment improvement
 - Roger's review - improve class level javadoc text of Inflater/Deflater
 - merge latest from master branch
 - merge latest from master branch
 - provide guidance to subclasses on which method to override for cleaning up 
resources
 - Revert "Roger's suggestion - Make Inflater.close() and Deflater.close() 
final, also update the new tests to match this change"
   
   This reverts commit b60181bbb4be9fac294b16820cd02017de71783e.
 - merge latest from master branch
 - update end() to remove mention of other methods throwing 
IllegalStateException
 - update the class level documentation of Inflater to match the updates in 
Deflater
 - merge latest from master branch
 - ... and 16 more: https://git.openjdk.org/jdk/compare/8e90cf7d...2266b5c5

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/19675/files
  - new: https://git.openjdk.org/jdk/pull/19675/files/42ff9059..2266b5c5

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=19675&range=12
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=19675&range=11-12

  Stats: 92121 lines in 4045 files changed: 68076 ins; 14391 del; 9654 mod
  Patch: https://git.openjdk.org/jdk/pull/19675.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19675/head:pull/19675

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

Reply via email to