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)