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 no...@apache.org on 2010/01/11 10:27:36 UTC
svn commit: r897808 - in
/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model:
JPAHeader.java JPAMailboxMembership.java JPAMessage.java JPAProperty.java
Author: norman
Date: Mon Jan 11 09:27:35 2010
New Revision: 897808
URL: http://svn.apache.org/viewvc?rev=897808&view=rev
Log:
Fix for copy message (IMAP-106)
Modified:
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAHeader.java Mon Jan 11 09:27:35 2010
@@ -53,8 +53,8 @@
* Copies the content of an existing header.
* @param header
*/
- public JPAHeader(JPAHeader header) {
- this(header.getLineNumber(), header.field, header.getValue());
+ public JPAHeader(Header header) {
+ this(header.getLineNumber(), header.getFieldName(), header.getValue());
}
public JPAHeader(int lineNumber, String field, String value) {
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMailboxMembership.java Mon Jan 11 09:27:35 2010
@@ -174,7 +174,7 @@
this.flagged = original.isFlagged();
this.recent = original.isRecent();
this.seen = original.isSeen();
- this.message = (JPAMessage) original.getDocument();
+ this.message = new JPAMessage((JPAMessage) original.getDocument());
}
/**
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAMessage.java Mon Jan 11 09:27:35 2010
@@ -80,8 +80,43 @@
for (final Property property:properties) {
this.properties.add(new JPAProperty(property, order++));
}
+
}
+
+ /**
+ * Create a copy of the given message
+ *
+ * @param message
+ */
+ public JPAMessage(JPAMessage message) {
+ ByteBuffer buf = message.getFullContent().duplicate();
+ int a = 0;
+ this.content = new byte[buf.capacity()];
+ while(buf.hasRemaining()) {
+ content[a] = buf.get();
+ a++;
+ }
+ this.contentOctets = content.length;
+ this.bodyStartOctet = (int) (message.getFullContentOctets() - message.getBodyOctets());
+ this.headers = new ArrayList<JPAHeader>();
+
+ List<Header> originalHeaders = message.getHeaders();
+ for (int i = 0; i < originalHeaders.size(); i++) {
+ headers.add(new JPAHeader(originalHeaders.get(i)));
+ }
+
+ PropertyBuilder pBuilder = new PropertyBuilder(message.getProperties());
+ this.textualLineCount = pBuilder.getTextualLineCount();
+ this.mediaType = pBuilder.getMediaType();
+ this.subType = pBuilder.getSubType();
+ final List<Property> properties = pBuilder.toProperties();
+ this.properties = new ArrayList<JPAProperty>(properties.size());
+ int order = 0;
+ for (final Property property:properties) {
+ this.properties.add(new JPAProperty(property, order++));
+ }
+ }
/**
* @see org.apache.james.imap.store.mail.model.Document#getHeaders()
*/
Modified: james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java?rev=897808&r1=897807&r2=897808&view=diff
==============================================================================
--- james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java (original)
+++ james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/model/JPAProperty.java Mon Jan 11 09:27:35 2010
@@ -68,6 +68,15 @@
}
/**
+ * Create a copy of the give JPAProperty
+ *
+ * @param property
+ */
+ public JPAProperty(JPAProperty property) {
+ this(property.getNamespace(), property.getLocalName(), property.getValue(), property.getOrder());
+ }
+
+ /**
* Gets the order of this property.
* @return order of this property
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org