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)

Reply via email to