Sfoglia il codice sorgente

HADOOP-14523. OpensslAesCtrCryptoCodec.finalize() holds excessive amounts of memory. Contributed by Misha Dmitriev.

Xiao Chen 8 anni fa
parent
commit
ef8edab930

+ 0 - 11
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/OpensslAesCtrCryptoCodec.java

@@ -19,7 +19,6 @@ package org.apache.hadoop.crypto;
 
 import static org.apache.hadoop.fs.CommonConfigurationKeysPublic.HADOOP_SECURITY_SECURE_RANDOM_IMPL_KEY;
 
-import java.io.Closeable;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.security.GeneralSecurityException;
@@ -71,16 +70,6 @@ public class OpensslAesCtrCryptoCodec extends AesCtrCryptoCodec {
     }
   }
 
-  @Override
-  protected void finalize() throws Throwable {
-    try {
-      Closeable r = (Closeable) this.random;
-      r.close();
-    } catch (ClassCastException e) {
-    }
-    super.finalize();
-  }
-
   @Override
   public Configuration getConf() {
     return conf;

+ 5 - 0
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/crypto/random/OsSecureRandom.java

@@ -116,4 +116,9 @@ public class OsSecureRandom extends Random implements Closeable, Configurable {
       stream = null;
     }
   }
+
+  @Override
+  protected void finalize() throws Throwable {
+    close();
+  }
 }