You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2016/07/10 13:02:01 UTC
commons-crypto git commit: CRYPTO-63 Add JNA binding
Repository: commons-crypto
Updated Branches:
refs/heads/master 94844c8bb -> 6ed9de8ac
CRYPTO-63 Add JNA binding
Work-round for JVM crash if close called more than once
Project: http://git-wip-us.apache.org/repos/asf/commons-crypto/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-crypto/commit/6ed9de8a
Tree: http://git-wip-us.apache.org/repos/asf/commons-crypto/tree/6ed9de8a
Diff: http://git-wip-us.apache.org/repos/asf/commons-crypto/diff/6ed9de8a
Branch: refs/heads/master
Commit: 6ed9de8acbe16298350f4a2099776b3537d0bfb4
Parents: 94844c8
Author: Sebb <se...@apache.org>
Authored: Sun Jul 10 14:01:56 2016 +0100
Committer: Sebb <se...@apache.org>
Committed: Sun Jul 10 14:01:56 2016 +0100
----------------------------------------------------------------------
.../org/apache/commons/crypto/jna/OpenSslJnaCipher.java | 10 +++++++++-
.../apache/commons/crypto/jna/OpenSslJnaCipherTest.java | 9 ---------
2 files changed, 9 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/6ed9de8a/src/main/java/org/apache/commons/crypto/jna/OpenSslJnaCipher.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/crypto/jna/OpenSslJnaCipher.java b/src/main/java/org/apache/commons/crypto/jna/OpenSslJnaCipher.java
index 285fbe7..f8ba94f 100644
--- a/src/main/java/org/apache/commons/crypto/jna/OpenSslJnaCipher.java
+++ b/src/main/java/org/apache/commons/crypto/jna/OpenSslJnaCipher.java
@@ -239,7 +239,10 @@ class OpenSslJnaCipher implements CryptoCipher {
public void close() {
if (context != null) {
OpenSslNativeJna.EVP_CIPHER_CTX_cleanup(context);
- OpenSslNativeJna.EVP_CIPHER_CTX_free(context);
+ // Freeing the context multiple times causes a JVM crash
+ // A work-round is to only free it at finalize time
+ // TODO is that sufficient?
+// OpenSslNativeJna.EVP_CIPHER_CTX_free(context);
}
}
@@ -328,4 +331,9 @@ class OpenSslJnaCipher implements CryptoCipher {
return transformation;
}
+ @Override
+ protected void finalize() throws Throwable {
+ OpenSslNativeJna.EVP_CIPHER_CTX_free(context);
+ super.finalize();
+ }
}
http://git-wip-us.apache.org/repos/asf/commons-crypto/blob/6ed9de8a/src/test/java/org/apache/commons/crypto/jna/OpenSslJnaCipherTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/crypto/jna/OpenSslJnaCipherTest.java b/src/test/java/org/apache/commons/crypto/jna/OpenSslJnaCipherTest.java
index a84fb6f..4b69ac9 100644
--- a/src/test/java/org/apache/commons/crypto/jna/OpenSslJnaCipherTest.java
+++ b/src/test/java/org/apache/commons/crypto/jna/OpenSslJnaCipherTest.java
@@ -35,13 +35,4 @@ public class OpenSslJnaCipherTest extends OpenSslCipherTest {
cipherClass = OpenSslJnaCipher.class.getName();
}
- @Override
- public void closeTestRepeat() {
- System.err.println("closeTestRepeat() Causes JVM crash");
- }
-
- @Override
- public void reInitAfterClose() {
- System.err.println("reInitAfterClose() Causes JVM crash");
- }
}