You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Roman Leventov (JIRA)" <ji...@apache.org> on 2018/11/28 19:11:00 UTC
[jira] [Created] (COMPRESS-473) Avoiding Java native peer objects
that override finalize()
Roman Leventov created COMPRESS-473:
---------------------------------------
Summary: Avoiding Java native peer objects that override finalize()
Key: COMPRESS-473
URL: https://issues.apache.org/jira/browse/COMPRESS-473
Project: Commons Compress
Issue Type: Improvement
Reporter: Roman Leventov
Objects that override finalize() are very bad for GC. The infrastructure library such as Commons Compress is probably the right place to do the hard work of eliminating dependencies on such objects. Instead, PhantomReference registered in a Queue, or sun.misc.Cleaner (or java.lang.ref.Cleaner) should be used.
In particular:
java.util.zip.Deflater/Inflater/ZipOutputStream/ZipInputStream/GZipOutputStream/GZipInputStream should not be used.
The issue for Zstd created in a downstream library: [https://github.com/luben/zstd-jni/issues/83]
Some other downstream dependencies could be affected too.
Commons Compress's own ZipFile and BZip2CompressorOutputStream classes should not override finalize() too.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)