Hi Volker, > On Nov 14, 2019, at 8:53 AM, Volker Simonis <simon...@amazon.com> wrote: > > On 13.11.19 18:54, Lance Andersen wrote: >> 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. > > Done. > >> If possible, I would use TestNG as that is consistent with the vast majority >> of the tests. >> > > I don't particularly like to nest one test harness within another one :) > But seriously, I think using JUnit or TestNG makes sens if you write a whole > test suit which uses the features of such a test harness (e.g. tear up, tear > down, etc.)
Well you could use @AfterMethod or @AfterClass to clean up files etc… ;-) > But for small trivial tests I really prefer to use plain JTreg. This also has > the big advantage that is becomes trivial to run such a test stand-alone > which may come handy if you have to debug it. Easy enough to add a main method to call your test method (there are some testng tests I have seen in the workspace that do that) > > So if you don't insist, I'll prefer to leave the test as it is. While I would prefer it for new tests, I am not insisting you need to change the test….. ;-) > >> I also believe the rest of the comments below are worth addressing. > > Besides that, I've addressed all the other points mentioned by Christoph. > Please find the new webrev at: > > http://cr.openjdk.java.net/~simonis/webrevs/2019/8234011.v1/ line 55 you can remove the creation of the HashMap line 73, do you really need the equals check seeing you do not do anything? I am not sure throwing a SkippedException is correct, I would probably throw a RuntimeException Best Lance > > Thank you and best regards, > Volker > >> Thank you again for the fix >> Best >> Lance >>> On Nov 13, 2019, at 11:26 AM, Langer, Christoph <christoph.lan...@sap.com >>> <mailto: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 >>>> <mailto: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 <mailto: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> > > > > > 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>