Author: bago
Date: Thu Apr 27 03:03:36 2006
New Revision: 397501
URL: http://svn.apache.org/viewcvs?rev=397501&view=rev
Log:
Message size calc changes (related to JAMES-466)
Modified:
james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
james/server/trunk/src/java/org/apache/james/core/MimeMessageUtil.java
james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
Modified:
james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
URL:
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java?rev=397501&r1=397500&r2=397501&view=diff
==============================================================================
---
james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
(original)
+++
james/server/trunk/src/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
Thu Apr 27 03:03:36 2006
@@ -775,11 +775,7 @@
* @throws MessagingException
*/
public long getMessageSize() throws MessagingException {
- if (wrapped instanceof MimeMessageWrapper) {
- return ((MimeMessageWrapper) wrapped).getMessageSize();
- } else {
- return MimeMessageUtil.getMessageSize(this);
- }
+ return MimeMessageUtil.getMessageSize(wrapped);
}
/**
Modified: james/server/trunk/src/java/org/apache/james/core/MimeMessageUtil.java
URL:
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/core/MimeMessageUtil.java?rev=397501&r1=397500&r2=397501&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/MimeMessageUtil.java
(original)
+++ james/server/trunk/src/java/org/apache/james/core/MimeMessageUtil.java Thu
Apr 27 03:03:36 2006
@@ -228,22 +228,37 @@
} else if (message instanceof MimeMessageCopyOnWriteProxy) {
MimeMessageCopyOnWriteProxy wrapper =
(MimeMessageCopyOnWriteProxy) message;
size = wrapper.getMessageSize();
- } else {
- //SK: Should probably eventually store this as a locally
- // maintained value (so we don't have to load and reparse
- // messages each time).
- size = message.getSize();
- if (size != -1) {
- Enumeration e = message.getAllHeaderLines();
- if (e.hasMoreElements()) {
- size += 2;
- }
- while (e.hasMoreElements()) {
- // add 2 bytes for the CRLF
- size += ((String) e.nextElement()).length()+2;
- }
+ }
+
+ if (size == -1) {
+ size = calculateMessageSize(message);
+ }
+
+ return size;
+ }
+
+ /**
+ * @param message
+ * @return the calculated size
+ * @throws MessagingException
+ */
+ public static long calculateMessageSize(MimeMessage message) throws
MessagingException {
+ long size;
+ //SK: Should probably eventually store this as a locally
+ // maintained value (so we don't have to load and reparse
+ // messages each time).
+ size = message.getSize();
+ if (size != -1) {
+ Enumeration e = message.getAllHeaderLines();
+ if (e.hasMoreElements()) {
+ size += 2;
+ }
+ while (e.hasMoreElements()) {
+ // add 2 bytes for the CRLF
+ size += ((String) e.nextElement()).length()+2;
}
}
+
if (size == -1) {
SizeCalculatorOutputStream out = new SizeCalculatorOutputStream();
Modified:
james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
URL:
http://svn.apache.org/viewcvs/james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java?rev=397501&r1=397500&r2=397501&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
(original)
+++ james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
Thu Apr 27 03:03:36 2006
@@ -329,7 +329,7 @@
throw new MessagingException("Error retrieving message size",
ioe);
}
} else {
- return MimeMessageUtil.getMessageSize(this);
+ return MimeMessageUtil.calculateMessageSize(this);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]