You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ba...@apache.org on 2010/08/24 11:25:57 UTC
svn commit: r988447 - in
/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim:
DKIMSigner.java DKIMVerifier.java impl/Message.java
Author: bago
Date: Tue Aug 24 09:25:56 2010
New Revision: 988447
URL: http://svn.apache.org/viewvc?rev=988447&view=rev
Log:
Make sure to dispose mime4j messages once used (JDKIM-18).
Thanks to Ben Aldrich for reporting. Implemented using a verbose dispose method instead of relying on finalizers.
Modified:
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java?rev=988447&r1=988446&r2=988447&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMSigner.java Tue Aug 24 09:25:56 2010
@@ -66,19 +66,24 @@ public class DKIMSigner extends DKIMComm
try {
try {
message = new Message(is);
- } catch (MimeException e1) {
- throw new PermFailException("MIME parsing exception: "
- + e1.getMessage(), e1);
- }
- SignatureRecord srt = newSignatureRecordTemplate(signatureRecordTemplate);
- BodyHasher bhj = newBodyHasher(srt);
+ try {
+ SignatureRecord srt = newSignatureRecordTemplate(signatureRecordTemplate);
- // computation of the body hash.
- DKIMCommon.streamCopy(message.getBodyInputStream(), bhj
- .getOutputStream());
+ BodyHasher bhj = newBodyHasher(srt);
- return sign(message, bhj);
+ // computation of the body hash.
+ DKIMCommon.streamCopy(message.getBodyInputStream(), bhj
+ .getOutputStream());
+
+ return sign(message, bhj);
+ } finally {
+ message.dispose();
+ }
+ } catch (MimeException e1) {
+ throw new PermFailException("MIME parsing exception: "
+ + e1.getMessage(), e1);
+ }
} finally {
is.close();
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java?rev=988447&r1=988446&r2=988447&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/DKIMVerifier.java Tue Aug 24 09:25:56 2010
@@ -213,7 +213,11 @@ public class DKIMVerifier extends DKIMCo
Message message;
try {
message = new Message(is);
- return verify(message, message.getBodyInputStream());
+ try {
+ return verify(message, message.getBodyInputStream());
+ } finally {
+ message.dispose();
+ }
} catch (MimeException e1) {
throw new PermFailException("Mime parsing exception: "
+ e1.getMessage(), e1);
Modified: james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java
URL: http://svn.apache.org/viewvc/james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java?rev=988447&r1=988446&r2=988447&view=diff
==============================================================================
--- james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java (original)
+++ james/jdkim/trunk/main/src/main/java/org/apache/james/jdkim/impl/Message.java Tue Aug 24 09:25:56 2010
@@ -43,14 +43,6 @@ public class Message implements Headers
private org.apache.james.mime4j.dom.Message message;
/**
- * Creates a new empty <code>Header</code>.
- * @throws MimeException
- */
- protected Message() throws MimeException {
- this.message = newMessageBuilder().newMessage();
- }
-
- /**
* Creates a new <code>Header</code> from the specified stream.
*
* @param is
@@ -129,4 +121,10 @@ public class Message implements Headers
return message.toString();
}
+ /**
+ * Make sure to dispose the message once used.
+ */
+ public void dispose() {
+ this.message.dispose();
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org