Hi Volker,

Thank you for doing this.

As Christoph mentioned,  you can just do Path.of() and create the file in the 
work directory for the test.

If possible, I would use TestNG as that is consistent with the vast majority of 
the tests.

I also believe the rest of the comments below are worth addressing.

Thank you again for the fix

Best
Lance
> On Nov 13, 2019, at 11:26 AM, Langer, Christoph <christoph.lan...@sap.com> 
> wrote:
> 
> Hi Volker,
> 
> good catch in ZipFileSystem 😊 The fix is the right thing to do.
> 
> I have a few remarks to the test, though:
> 
> Line 52, initialization of the File object: I think you should just do Path 
> zipFile = Paths.get("file.zip"); When the test is run in the jtreg framework, 
> it's running in its own scratch directory, so no need to use java.io.tmpdir. 
> You can also leave cleanup to jtreg and don't need to delete the file in the 
> end (in the finally block). However, you should probably check whether the 
> file exists in the beginning and delete it in that case.
> 
> Line 55ff: You don't need to use this URI thing any more. You can simply do: 
> try (FileSystem fs = FileSystems.newFileSystem(zipFile, Map.of("create", 
> true))) { (line 58).
> 
> Line 61/62: You're using a Vector, wow 😊 You should rather use ArrayList, I 
> think...
> 
> Line 85: This should rather be:
>                    @SuppressWarnings("unchecked")
>                    int inflater_count = 
> ((List<Inflater>)inflaters.get(fs)).size();
> Same for line 89.
> 
> Line 93 (Catch clause): I think we should fail in that case, too. Otherwise, 
> if the implementation would change, the test could run unnoticed for years, 
> testing basically nothing...
> 
> Best regards,
> Christoph
> 
> 
>> -----Original Message-----
>> From: core-libs-dev <core-libs-dev-boun...@openjdk.java.net> On Behalf
>> Of Simonis, Volker
>> Sent: Mittwoch, 13. November 2019 16:23
>> To: core-libs-dev@openjdk.java.net
>> Subject: RFR(XS): 8234011: (zipfs) Memory leak in
>> ZipFileSystem.releaseDeflater()
>> 
>> Hi,
>> 
>> can I please get a review for this trivial fix of an old copy-and-paste 
>> error:
>> 
>> http://cr.openjdk.java.net/~simonis/webrevs/2019/8234011/
>> https://bugs.openjdk.java.net/browse/JDK-8234011
>> 
>> ZipFileSystem caches MAX_FLATER (currently 20) Inflater/Deflater objects.
>> However the logic for reusing Deflaters is wrong because it references the
>> Inflater List when checking against the number of already cached objects.
>> This seems like a day-one copy and paste error.
>> 
>> Notice that this issue is not as critical as it appears, because retaining of
>> additional Deflaters only happens when more than MAX_FLATER are used
>> and released concurrently. I.e. the maximum number of cached Deflaters is
>> the maximal number of Deflaters that are released while no new Deflater is
>> requested. In practice this is usually still a small number, less than
>> MAX_FLATERS. Nevertheless we can easily construct an example which
>> demonstrates the memory leak (see the JTRegtest in the patch) and because
>> the fix is trivial we should really fix this.
>> 
>> Thank you and best regards,
>> Volker
>> 
>> 
>> 
>> Amazon Development Center Germany GmbH
>> Krausenstr. 38
>> 10117 Berlin
>> Geschaeftsfuehrung: Christian Schlaeger, Ralf Herbrich
>> Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
>> Sitz: Berlin
>> Ust-ID: DE 289 237 879
>> 
>> 
> 

 <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