Author: ieugen
Date: Wed Dec 26 12:11:40 2012
New Revision: 1425891
URL: http://svn.apache.org/viewvc?rev=1425891&view=rev
Log:
JAMES-1445 Intellij IDEA code analisys improvements
Modified:
james/server/trunk/core/pom.xml
james/server/trunk/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java
james/server/trunk/core/src/main/java/org/apache/james/core/MailHeaders.java
james/server/trunk/core/src/main/java/org/apache/james/core/MailImpl.java
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageSource.java
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageUtil.java
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java
james/server/trunk/core/src/test/java/org/apache/james/core/MailTestAllImplementations.java
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageTest.java
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
james/server/trunk/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/DataLineLMTPHandler.java
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/mailet/MockMailContext.java
Modified: james/server/trunk/core/pom.xml
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/pom.xml?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
--- james/server/trunk/core/pom.xml (original)
+++ james/server/trunk/core/pom.xml Wed Dec 26 12:11:40 2012
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="ISO-8859-15"?>
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java
(original)
+++
james/server/trunk/core/src/main/java/org/apache/james/core/InternetHeadersInputStream.java
Wed Dec 26 12:11:40 2012
@@ -35,7 +35,7 @@ public class InternetHeadersInputStream
private final static String LINE_SEPERATOR = "\r\n";
- private Enumeration<String> headerLines;
+ private final Enumeration<String> headerLines;
private byte[] currLine;
private int pos = 0;
@@ -51,7 +51,7 @@ public class InternetHeadersInputStream
@Override
public int read() throws IOException {
if (currLine == null || pos == currLine.length) {
- if (readNextLine() == false) {
+ if (!readNextLine()) {
return -1;
}
}
@@ -71,7 +71,7 @@ public class InternetHeadersInputStream
pos = 0;
String line = (headerLines.nextElement() + LINE_SEPERATOR);
// Add seperator to show that headers are complete
- if (headerLines.hasMoreElements() == false) {
+ if (!headerLines.hasMoreElements()) {
line += LINE_SEPERATOR;
}
currLine = line.getBytes("US-ASCII");
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/MailHeaders.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MailHeaders.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/main/java/org/apache/james/core/MailHeaders.java
(original)
+++
james/server/trunk/core/src/main/java/org/apache/james/core/MailHeaders.java
Wed Dec 26 12:11:40 2012
@@ -50,7 +50,7 @@ public class MailHeaders extends Interne
* @throws MessagingException
* if the super class cannot be properly instantiated
*/
- public MailHeaders() throws MessagingException {
+ public MailHeaders() {
super();
}
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/MailImpl.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MailImpl.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
--- james/server/trunk/core/src/main/java/org/apache/james/core/MailImpl.java
(original)
+++ james/server/trunk/core/src/main/java/org/apache/james/core/MailImpl.java
Wed Dec 26 12:11:40 2012
@@ -263,6 +263,7 @@ public class MailImpl implements Disposa
*
* @return the error message associated with this MailImpl
*/
+ @Override
public String getErrorMessage() {
return errorMessage;
}
@@ -643,6 +644,7 @@ public class MailImpl implements Disposa
* @see org.apache.mailet.Mail#hasAttributes()
* @since 2.2.0
*/
+ @Override
public boolean hasAttributes() {
return !attributes.isEmpty();
}
@@ -665,8 +667,7 @@ public class MailImpl implements Disposa
out.close();
ByteArrayInputStream bi = new ByteArrayInputStream(b.toByteArray());
ObjectInputStream in = new ObjectInputStream(bi);
- Object no = in.readObject();
- return no;
+ return in.readObject();
}
private static final java.util.Random random = new java.util.Random(); //
Used
@@ -705,8 +706,7 @@ public class MailImpl implements Disposa
}
}
- StringBuffer nameBuffer = new
StringBuffer(64).append(oldName).append("-!").append(random.nextInt(1048576));
- return nameBuffer.toString();
+ return oldName + "-!" + random.nextInt(1048576);
}
/**
@@ -715,8 +715,7 @@ public class MailImpl implements Disposa
* @return the new identifier
*/
public static String getId() {
- StringBuilder idBuffer = new
StringBuilder().append("Mail").append(System.currentTimeMillis()).append("-").append(UUID.randomUUID());
- return idBuffer.toString();
+ return "Mail" + System.currentTimeMillis() + "-" + UUID.randomUUID();
}
}
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
(original)
+++
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageCopyOnWriteProxy.java
Wed Dec 26 12:11:40 2012
@@ -109,7 +109,7 @@ public class MimeMessageCopyOnWriteProxy
* MimeMessageWrapper
* @throws MessagingException
*/
- public MimeMessageCopyOnWriteProxy(MimeMessage original) throws
MessagingException {
+ public MimeMessageCopyOnWriteProxy(MimeMessage original) {
this(original, false);
}
@@ -129,7 +129,7 @@ public class MimeMessageCopyOnWriteProxy
* @param writeable
* @throws MessagingException
*/
- private MimeMessageCopyOnWriteProxy(MimeMessage original, boolean
writeable) throws MessagingException {
+ private MimeMessageCopyOnWriteProxy(MimeMessage original, boolean
writeable) {
super(Session.getDefaultInstance(System.getProperties(), null));
if (original instanceof MimeMessageCopyOnWriteProxy) {
@@ -465,6 +465,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see java.lang.Object#equals(java.lang.Object)
*/
+ @Override
public boolean equals(Object arg0) {
return getWrappedMessage().equals(arg0);
}
@@ -472,6 +473,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see java.lang.Object#hashCode()
*/
+ @Override
public int hashCode() {
return getWrappedMessage().hashCode();
}
@@ -479,6 +481,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see java.lang.Object#toString()
*/
+ @Override
public String toString() {
return getWrappedMessage().toString();
}
@@ -490,6 +493,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.Message#setFrom(javax.mail.Address)
*/
+ @Override
public void setFrom(Address address) throws MessagingException {
getWrappedMessageForWriting().setFrom(address);
}
@@ -497,6 +501,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.Message#setFrom()
*/
+ @Override
public void setFrom() throws MessagingException {
getWrappedMessageForWriting().setFrom();
}
@@ -504,6 +509,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.Message#addFrom(javax.mail.Address[])
*/
+ @Override
public void addFrom(Address[] addresses) throws MessagingException {
getWrappedMessageForWriting().addFrom(addresses);
}
@@ -512,6 +518,7 @@ public class MimeMessageCopyOnWriteProxy
* @see javax.mail.Message#setRecipients(javax.mail.Message.RecipientType,
* javax.mail.Address[])
*/
+ @Override
public void setRecipients(Message.RecipientType type, Address[] addresses)
throws MessagingException {
getWrappedMessageForWriting().setRecipients(type, addresses);
}
@@ -520,6 +527,7 @@ public class MimeMessageCopyOnWriteProxy
* @see javax.mail.Message#addRecipients(javax.mail.Message.RecipientType,
* javax.mail.Address[])
*/
+ @Override
public void addRecipients(Message.RecipientType type, Address[] addresses)
throws MessagingException {
getWrappedMessageForWriting().addRecipients(type, addresses);
}
@@ -527,6 +535,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.Message#setReplyTo(javax.mail.Address[])
*/
+ @Override
public void setReplyTo(Address[] addresses) throws MessagingException {
getWrappedMessageForWriting().setReplyTo(addresses);
}
@@ -534,6 +543,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.Message#setSubject(java.lang.String)
*/
+ @Override
public void setSubject(String subject) throws MessagingException {
getWrappedMessageForWriting().setSubject(subject);
}
@@ -542,6 +552,7 @@ public class MimeMessageCopyOnWriteProxy
* @see javax.mail.internet.MimeMessage#setSubject(java.lang.String,
* java.lang.String)
*/
+ @Override
public void setSubject(String subject, String charset) throws
MessagingException {
getWrappedMessageForWriting().setSubject(subject, charset);
}
@@ -549,6 +560,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.Message#setSentDate(java.util.Date)
*/
+ @Override
public void setSentDate(Date d) throws MessagingException {
getWrappedMessageForWriting().setSentDate(d);
}
@@ -556,6 +568,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.Part#setDisposition(java.lang.String)
*/
+ @Override
public void setDisposition(String disposition) throws MessagingException {
getWrappedMessageForWriting().setDisposition(disposition);
}
@@ -563,6 +576,7 @@ public class MimeMessageCopyOnWriteProxy
/**
* @see javax.mail.internet.MimeMessage#setContentID(java.lang.String)
*/
+ @Override
public void setContentID(String cid) throws MessagingException {
getWrappedMessageForWriting().setContentID(cid);
}
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java
(original)
+++
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageInputStreamSource.java
Wed Dec 26 12:11:40 2012
@@ -19,15 +19,14 @@
package org.apache.james.core;
-import javax.mail.MessagingException;
-import javax.mail.util.SharedByteArrayInputStream;
-import javax.mail.util.SharedFileInputStream;
-
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.output.DeferredFileOutputStream;
import org.apache.james.lifecycle.api.Disposable;
+import javax.mail.MessagingException;
+import javax.mail.util.SharedByteArrayInputStream;
+import javax.mail.util.SharedFileInputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -40,8 +39,7 @@ import java.util.List;
* Takes an input stream and creates a repeatable input stream source for a
* MimeMessageWrapper. It does this by completely reading the input stream and
* saving that to data to an {@link DeferredFileOutputStream} with its
threshold set to 100kb
- *
- **/
+ */
public class MimeMessageInputStreamSource extends MimeMessageSource implements
Disposable {
private final List<InputStream> streams = new ArrayList<InputStream>();
@@ -60,30 +58,26 @@ public class MimeMessageInputStreamSourc
* 100kb threshold for the stream.
*/
private final static int THRESHOLD = 1024 * 100;
-
+
/**
* Temporary directory to use
*/
private final static File TMPDIR = new
File(System.getProperty("java.io.tmpdir"));
-
+
/**
* Construct a new MimeMessageInputStreamSource from an
* <code>InputStream</code> that contains the bytes of a MimeMessage.
- *
- * @param key
- * the prefix for the name of the temp file
- * @param in
- * the stream containing the MimeMessage
- *
- * @throws MessagingException
- * if an error occurs while trying to store the stream
+ *
+ * @param key the prefix for the name of the temp file
+ * @param in the stream containing the MimeMessage
+ * @throws MessagingException if an error occurs while trying to store the
stream
*/
public MimeMessageInputStreamSource(String key, InputStream in) throws
MessagingException {
super();
// We want to immediately read this into a temporary file
// Create a temp file and channel the input stream into it
try {
- out = new DeferredFileOutputStream(THRESHOLD, key, ".m64", TMPDIR
);
+ out = new DeferredFileOutputStream(THRESHOLD, key, ".m64", TMPDIR);
IOUtils.copy(in, out);
sourceId = key;
} catch (IOException ioe) {
@@ -92,7 +86,7 @@ public class MimeMessageInputStreamSourc
try {
if (out != null) {
out.close();
-
+
File file = out.getFile();
if (file != null) {
file.delete();
@@ -109,19 +103,19 @@ public class MimeMessageInputStreamSourc
} catch (IOException ioe) {
// Ignored - logging unavailable to log this non-fatal error.
}
-
+
}
}
- public MimeMessageInputStreamSource(String key) throws MessagingException {
+ public MimeMessageInputStreamSource(String key) {
super();
- out = new DeferredFileOutputStream(THRESHOLD, key, ".m64", TMPDIR );
+ out = new DeferredFileOutputStream(THRESHOLD, key, ".m64", TMPDIR);
sourceId = key;
}
/**
* Returns the unique identifier of this input stream source
- *
+ *
* @return the unique identifier for this MimeMessageInputStreamSource
*/
public String getSourceId() {
@@ -130,7 +124,7 @@ public class MimeMessageInputStreamSourc
/**
* Get an input stream to retrieve the data stored in the temporary file
- *
+ *
* @return a <code>BufferedInputStream</code> containing the data
*/
public synchronized InputStream getInputStream() throws IOException {
@@ -146,40 +140,33 @@ public class MimeMessageInputStreamSourc
/**
* Get the size of the temp file
- *
+ *
* @return the size of the temp file
- *
- * @throws IOException
- * if an error is encoutered while computing the size of the
- * message
+ * @throws IOException if an error is encoutered while computing the size
of the
+ * message
*/
+ @Override
public long getMessageSize() throws IOException {
return out.getByteCount();
}
- /**
- * @return the output stream to write to
- * @throws FileNotFoundException
- */
- public OutputStream getWritableOutputStream() throws FileNotFoundException
{
+ public OutputStream getWritableOutputStream() {
return out;
}
- /**
- * @see org.apache.james.lifecycle.api.Disposable#dispose()
- */
+ @Override
public void dispose() {
// explicit close all streams
- for (int i = 0; i < streams.size(); i++) {
- IOUtils.closeQuietly(streams.get(i));
+ for (InputStream stream : streams) {
+ IOUtils.closeQuietly(stream);
}
if (out != null) {
IOUtils.closeQuietly(out);
File file = out.getFile();
if (file != null) {
- FileUtils.deleteQuietly(file);
- file = null;
+ FileUtils.deleteQuietly(file);
+ file = null;
}
out = null;
}
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageSource.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageSource.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageSource.java
(original)
+++
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageSource.java
Wed Dec 26 12:11:40 2012
@@ -63,7 +63,7 @@ public abstract class MimeMessageSource
InputStream in = null;
try {
in = getInputStream();
- int read = 0;
+ int read;
byte[] data = new byte[1024];
while ((read = in.read(data)) > 0) {
size += read;
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageUtil.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageUtil.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageUtil.java
(original)
+++
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageUtil.java
Wed Dec 26 12:11:40 2012
@@ -101,7 +101,7 @@ public class MimeMessageUtil {
* @throws IOException
* @throws UnsupportedDataTypeException
*/
- public static void writeToInternal(MimeMessage message, OutputStream
headerOs, OutputStream bodyOs, String[] ignoreList) throws MessagingException,
IOException, UnsupportedDataTypeException {
+ public static void writeToInternal(MimeMessage message, OutputStream
headerOs, OutputStream bodyOs, String[] ignoreList) throws MessagingException,
IOException {
if (message.getMessageID() == null) {
message.saveChanges();
}
@@ -123,7 +123,7 @@ public class MimeMessageUtil {
* @throws UnsupportedDataTypeException
* @throws MessagingException
*/
- public static void writeMessageBodyTo(MimeMessage message, OutputStream
bodyOs) throws IOException, UnsupportedDataTypeException, MessagingException {
+ public static void writeMessageBodyTo(MimeMessage message, OutputStream
bodyOs) throws IOException, MessagingException {
OutputStream bos;
InputStream bis;
Modified:
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java
(original)
+++
james/server/trunk/core/src/main/java/org/apache/james/core/MimeMessageWrapper.java
Wed Dec 26 12:11:40 2012
@@ -82,7 +82,7 @@ public class MimeMessageWrapper extends
private long initialHeaderSize;
- private MimeMessageWrapper(Session session) throws MessagingException {
+ private MimeMessageWrapper(Session session) {
super(session);
this.headers = null;
this.modified = false;
@@ -98,7 +98,7 @@ public class MimeMessageWrapper extends
* the MimeMessageSource
* @throws MessagingException
*/
- public MimeMessageWrapper(Session session, MimeMessageSource source)
throws MessagingException {
+ public MimeMessageWrapper(Session session, MimeMessageSource source) {
this(session);
this.source = source;
}
@@ -166,6 +166,7 @@ public class MimeMessageWrapper extends
*
* @see javax.mail.internet.MimeMessage#updateMessageID()
*/
+ @Override
protected void updateMessageID() throws MessagingException {
if (getMessageID() == null)
super.updateMessageID();
@@ -190,7 +191,6 @@ public class MimeMessageWrapper extends
protected synchronized void loadHeaders() throws MessagingException {
if (headers != null) {
// Another thread has already loaded these headers
- return;
} else if (source != null) {
try {
InputStream in = source.getInputStream();
@@ -217,7 +217,6 @@ public class MimeMessageWrapper extends
public synchronized void loadMessage() throws MessagingException {
if (messageParsed) {
// Another thread has already loaded this message
- return;
} else if (source != null) {
sourceIn = null;
try {
@@ -267,6 +266,7 @@ public class MimeMessageWrapper extends
/**
* Rewritten for optimization purposes
*/
+ @Override
public void writeTo(OutputStream os) throws IOException,
MessagingException {
writeTo(os, os);
@@ -275,6 +275,7 @@ public class MimeMessageWrapper extends
/**
* Rewritten for optimization purposes
*/
+ @Override
public void writeTo(OutputStream os, String[] ignoreList) throws
IOException, MessagingException {
writeTo(os, os, ignoreList);
}
@@ -292,7 +293,7 @@ public class MimeMessageWrapper extends
public synchronized void writeTo(OutputStream headerOs, OutputStream
bodyOs, String[] ignoreList, boolean preLoad) throws IOException,
MessagingException {
- if (preLoad == false && source != null && !isBodyModified()) {
+ if (!preLoad && source != null && !isBodyModified()) {
// We do not want to instantiate the message... just read from
// source
// and write to this outputstream
@@ -304,7 +305,7 @@ public class MimeMessageWrapper extends
MailHeaders parsedHeaders = new MailHeaders(in);
// check if we should use the parsed headers or not
- if (isHeaderModified() == false) {
+ if (!isHeaderModified()) {
myHeaders = parsedHeaders;
} else {
// The headers was modified so we need to call
saveChanges() just to be sure
@@ -331,7 +332,7 @@ public class MimeMessageWrapper extends
}
IOUtils.copy(new
InternetHeadersInputStream(headers.getNonMatchingHeaderLines(ignoreList)),
headerOs);
- if (preLoad && messageParsed == false) {
+ if (preLoad && !messageParsed) {
loadMessage();
}
MimeMessageUtil.writeMessageBodyTo(this, bodyOs);
@@ -343,6 +344,7 @@ public class MimeMessageWrapper extends
* body, not the entire message (should not count headers). This size will
* never change on {@link #saveChanges()}
*/
+ @Override
public synchronized int getSize() throws MessagingException {
if (source != null) {
try {
@@ -370,8 +372,9 @@ public class MimeMessageWrapper extends
* Corrects JavaMail 1.1 version which always returns -1. Only corrected
for
* content less than 5000 bytes, to avoid memory hogging.
*/
+ @Override
public int getLineCount() throws MessagingException {
- InputStream in = null;
+ InputStream in;
try {
in = getContentStream();
} catch (Exception e) {
@@ -427,6 +430,7 @@ public class MimeMessageWrapper extends
* the headers
*/
+ @Override
public String[] getHeader(String name) throws MessagingException {
if (headers == null) {
loadHeaders();
@@ -434,6 +438,7 @@ public class MimeMessageWrapper extends
return headers.getHeader(name);
}
+ @Override
public String getHeader(String name, String delimiter) throws
MessagingException {
if (headers == null) {
loadHeaders();
@@ -441,6 +446,7 @@ public class MimeMessageWrapper extends
return headers.getHeader(name, delimiter);
}
+ @Override
public Enumeration getAllHeaders() throws MessagingException {
if (headers == null) {
loadHeaders();
@@ -448,6 +454,7 @@ public class MimeMessageWrapper extends
return headers.getAllHeaders();
}
+ @Override
public Enumeration getMatchingHeaders(String[] names) throws
MessagingException {
if (headers == null) {
loadHeaders();
@@ -455,6 +462,7 @@ public class MimeMessageWrapper extends
return headers.getMatchingHeaders(names);
}
+ @Override
public Enumeration getNonMatchingHeaders(String[] names) throws
MessagingException {
if (headers == null) {
loadHeaders();
@@ -462,6 +470,7 @@ public class MimeMessageWrapper extends
return headers.getNonMatchingHeaders(names);
}
+ @Override
public Enumeration getAllHeaderLines() throws MessagingException {
if (headers == null) {
loadHeaders();
@@ -469,6 +478,7 @@ public class MimeMessageWrapper extends
return headers.getAllHeaderLines();
}
+ @Override
public Enumeration getMatchingHeaderLines(String[] names) throws
MessagingException {
if (headers == null) {
loadHeaders();
@@ -476,6 +486,7 @@ public class MimeMessageWrapper extends
return headers.getMatchingHeaderLines(names);
}
+ @Override
public Enumeration getNonMatchingHeaderLines(String[] names) throws
MessagingException {
if (headers == null) {
loadHeaders();
@@ -498,21 +509,25 @@ public class MimeMessageWrapper extends
headersModified = true;
}
+ @Override
public void setHeader(String name, String value) throws MessagingException
{
checkModifyHeaders();
super.setHeader(name, value);
}
+ @Override
public void addHeader(String name, String value) throws MessagingException
{
checkModifyHeaders();
super.addHeader(name, value);
}
+ @Override
public void removeHeader(String name) throws MessagingException {
checkModifyHeaders();
super.removeHeader(name);
}
+ @Override
public void addHeaderLine(String line) throws MessagingException {
checkModifyHeaders();
super.addHeaderLine(line);
@@ -524,6 +539,7 @@ public class MimeMessageWrapper extends
*
* @see javax.mail.Part#setDataHandler(javax.activation.DataHandler)
*/
+ @Override
public synchronized void setDataHandler(DataHandler arg0) throws
MessagingException {
modified = true;
saved = false;
@@ -531,9 +547,7 @@ public class MimeMessageWrapper extends
super.setDataHandler(arg0);
}
- /**
- * @see org.apache.james.lifecycle.api.Disposable#dispose()
- */
+ @Override
public void dispose() {
if (sourceIn != null) {
IOUtils.closeQuietly(sourceIn);
@@ -546,6 +560,7 @@ public class MimeMessageWrapper extends
/**
* @see javax.mail.internet.MimeMessage#parse(java.io.InputStream)
*/
+ @Override
protected synchronized void parse(InputStream is) throws
MessagingException {
// the super implementation calls
// headers = createInternetHeaders(is);
@@ -559,6 +574,7 @@ public class MimeMessageWrapper extends
*
* @see
javax.mail.internet.MimeMessage#createInternetHeaders(java.io.InputStream)
*/
+ @Override
protected synchronized InternetHeaders createInternetHeaders(InputStream
is) throws MessagingException {
/*
* This code is no more needed: see JAMES-570 and new tests
@@ -601,6 +617,7 @@ public class MimeMessageWrapper extends
/**
* @see javax.mail.internet.MimeMessage#getContentStream()
*/
+ @Override
protected InputStream getContentStream() throws MessagingException {
if (!messageParsed) {
loadMessage();
@@ -611,6 +628,7 @@ public class MimeMessageWrapper extends
/**
* @see javax.mail.internet.MimeMessage#getRawInputStream()
*/
+ @Override
public synchronized InputStream getRawInputStream() throws
MessagingException {
if (!messageParsed && !isModified() && source != null) {
InputStream is;
Modified:
james/server/trunk/core/src/test/java/org/apache/james/core/MailTestAllImplementations.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/test/java/org/apache/james/core/MailTestAllImplementations.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/test/java/org/apache/james/core/MailTestAllImplementations.java
(original)
+++
james/server/trunk/core/src/test/java/org/apache/james/core/MailTestAllImplementations.java
Wed Dec 26 12:11:40 2012
@@ -33,7 +33,7 @@ public abstract class MailTestAllImpleme
/** provide the concrete implementation to test */
protected abstract Mail createMailImplementation();
- protected void helperTestInitialState(Mail mail) throws MessagingException
{
+ protected void helperTestInitialState(Mail mail) {
assertFalse("no initial attributes", mail.hasAttributes());
assertNull("no initial error", mail.getErrorMessage());
assertNotNull("initial last update set", mail.getLastUpdated());
Modified:
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java
(original)
+++
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageCopyOnWriteProxyTest.java
Wed Dec 26 12:11:40 2012
@@ -34,9 +34,9 @@ import org.junit.Test;
public class MimeMessageCopyOnWriteProxyTest extends MimeMessageFromStreamTest
{
- String content = "Subject: foo\r\nContent-Transfer-Encoding2: plain";
- String sep = "\r\n\r\n";
- String body = "bar\r\n.\r\n";
+ final String content = "Subject: foo\r\nContent-Transfer-Encoding2: plain";
+ final String sep = "\r\n\r\n";
+ final String body = "bar\r\n.\r\n";
@Override
protected MimeMessage getMessageFromSources(String sources) throws
Exception {
Modified:
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageTest.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageTest.java
(original)
+++
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageTest.java
Wed Dec 26 12:11:40 2012
@@ -53,7 +53,7 @@ public class MimeMessageTest {
return mmCreated;
}
- protected String getSimpleMessageCleanedSource() throws Exception {
+ protected String getSimpleMessageCleanedSource() {
return "Subject: test\r\n"
+ "MIME-Version: 1.0\r\n"
+ "Content-Type: text/plain; charset=us-ascii\r\n"
@@ -71,7 +71,7 @@ public class MimeMessageTest {
return mmCreated;
}
- protected String getMessageWithBadReturnPathSource() throws Exception {
+ protected String getMessageWithBadReturnPathSource() {
return "Subject: test\r\n"
+ "Return-Path: <[email protected]>\r\n"
+ "MIME-Version: 1.0\r\n"
@@ -81,7 +81,7 @@ public class MimeMessageTest {
+ "test body";
}
- protected String getSimpleMessageCleanedSourceHeaderExpected() throws
Exception {
+ protected String getSimpleMessageCleanedSourceHeaderExpected() {
return "X-Test: foo\r\n" + getSimpleMessageCleanedSource();
}
Modified:
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
(original)
+++
james/server/trunk/core/src/test/java/org/apache/james/core/MimeMessageWrapperTest.java
Wed Dec 26 12:11:40 2012
@@ -102,9 +102,9 @@ public class MimeMessageWrapperTest exte
}
}
TestableMimeMessageWrapper mw = null;
- String content = "Subject: foo\r\nContent-Transfer-Encoding2: plain";
- String sep = "\r\n\r\n";
- String body = "bar\r\n";
+ final String content = "Subject: foo\r\nContent-Transfer-Encoding2: plain";
+ final String sep = "\r\n\r\n";
+ final String body = "bar\r\n";
@Override
protected MimeMessage getMessageFromSources(String sources) throws
Exception {
@@ -264,7 +264,7 @@ public class MimeMessageWrapperTest exte
mw.saveChanges();
BufferedReader reader = new BufferedReader(new
InputStreamReader(mw.getMessageInputStream()));
- String line = null;
+ String line;
boolean headerUpdated = false;
while ((line = reader.readLine()) != null) {
@@ -284,12 +284,12 @@ public class MimeMessageWrapperTest exte
public void testMessageStreamWithUpatedContent() throws
MessagingException, IOException {
String newContent = "This is the new message content!";
mw.setText(newContent);
- assertEquals(newContent, (String) mw.getContent());
+ assertEquals(newContent, mw.getContent());
mw.saveChanges();
BufferedReader reader = new BufferedReader(new
InputStreamReader(mw.getMessageInputStream()));
- String line = null;
+ String line;
boolean contentUpdated = false;
while ((line = reader.readLine()) != null) {
Modified:
james/server/trunk/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/DataLineLMTPHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/DataLineLMTPHandler.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/DataLineLMTPHandler.java
(original)
+++
james/server/trunk/protocols-lmtp/src/main/java/org/apache/james/lmtpserver/DataLineLMTPHandler.java
Wed Dec 26 12:11:40 2012
@@ -18,18 +18,12 @@
****************************************************************/
package org.apache.james.lmtpserver;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
import org.apache.james.protocols.api.Response;
import org.apache.james.protocols.api.handler.WiringException;
import org.apache.james.protocols.lmtp.LMTPMultiResponse;
import org.apache.james.protocols.lmtp.hook.DeliverToRecipientHook;
import org.apache.james.protocols.smtp.MailAddress;
+import org.apache.james.protocols.smtp.MailAddressException;
import org.apache.james.protocols.smtp.SMTPResponse;
import org.apache.james.protocols.smtp.SMTPRetCode;
import org.apache.james.protocols.smtp.SMTPSession;
@@ -38,6 +32,12 @@ import org.apache.james.protocols.smtp.d
import org.apache.james.smtpserver.DataLineJamesMessageHookHandler;
import org.apache.mailet.Mail;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
/**
* Handler which takes care of deliver the mail to the recipients INBOX
*/
@@ -49,17 +49,21 @@ public class DataLineLMTPHandler extends
@Override
protected Response processExtensions(SMTPSession session, final Mail mail)
{
LMTPMultiResponse mResponse = null;
-
+
// build a wrapper around the Mail
final ReadOnlyMailEnvelope env = new ReadOnlyMailEnvelope(mail);
- @SuppressWarnings("unchecked")
- Iterator<MailAddress> recipients = mail.getRecipients().iterator();
-
- while (recipients.hasNext()) {
- MailAddress recipient = recipients.next();
+
+ for (org.apache.mailet.MailAddress recipient : mail.getRecipients()) {
+ // TODO: the transformation code between MailAddress is purely to
compile. No idea if it does what it's supposed
+ MailAddress recipientAddress;
+ try {
+ recipientAddress = new MailAddress(recipient.getLocalPart(),
recipient.getDomain());
+ } catch (MailAddressException e) {
+ throw new RuntimeException(e);
+ }
Response response = null;
- for (DeliverToRecipientHook handler: handlers) {
- response =
AbstractHookableCmdHandler.calcDefaultSMTPResponse(handler.deliver(session,
recipient, env));
+ for (DeliverToRecipientHook handler : handlers) {
+ response =
AbstractHookableCmdHandler.calcDefaultSMTPResponse(handler.deliver(session,
recipientAddress, env));
if (response != null) {
break;
}
@@ -88,7 +92,7 @@ public class DataLineLMTPHandler extends
@Override
public void wireExtensions(Class interfaceName, List extension) throws
WiringException {
if (interfaceName.equals(DeliverToRecipientHook.class)) {
- handlers.addAll((Collection<? extends DeliverToRecipientHook>)
extension);
+ handlers.addAll((Collection<? extends DeliverToRecipientHook>)
extension);
}
}
@@ -97,11 +101,10 @@ public class DataLineLMTPHandler extends
public ReadOnlyMailEnvelope(Mail mail) {
super(mail, null);
}
-
+
@Override
- public OutputStream getMessageOutputStream() throws IOException{
+ public OutputStream getMessageOutputStream() throws IOException {
throw new IOException("Read-only envelope");
}
-
}
}
Modified:
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
(original)
+++
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/DataLineJamesMessageHookHandler.java
Wed Dec 26 12:11:40 2012
@@ -47,7 +47,6 @@ import org.apache.mailet.Mail;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -67,7 +66,6 @@ public class DataLineJamesMessageHookHan
private List<MessageHook> mHandlers;
- @Override
public Response onLine(SMTPSession session, ByteBuffer lineByteBuffer,
LineHandler<SMTPSession> next) {
byte[] line = new byte[lineByteBuffer.remaining()];
@@ -150,12 +148,8 @@ public class DataLineJamesMessageHookHan
if (mail != null && messageHandlers != null) {
try {
MimeMessageInputStreamSource mmiss =
(MimeMessageInputStreamSource)
session.getAttachment(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE,
State.Transaction);
- OutputStream out = null;
- try {
- out = mmiss.getWritableOutputStream();
- } catch (FileNotFoundException e) {
- session.getLogger().debug("Unable to obtain OutputStream
for Mail " + mail, e);
- }
+ OutputStream out;
+ out = mmiss.getWritableOutputStream();
for (MessageHook rawHandler : mHandlers) {
session.getLogger().debug("executing james message handler
" + rawHandler);
long start = System.currentTimeMillis();
@@ -182,7 +176,7 @@ public class DataLineJamesMessageHookHan
for (JamesMessageHook messageHandler : messageHandlers) {
session.getLogger().debug("executing james message handler
" + messageHandler);
long start = System.currentTimeMillis();
- HookResult hRes = messageHandler.onMessage(session, mail);
+ HookResult hRes = ((JamesMessageHook)
messageHandler).onMessage(session, mail);
long executionTime = System.currentTimeMillis() - start;
if (rHooks != null) {
for (HookResultHook rHook : rHooks) {
@@ -261,7 +255,16 @@ public class DataLineJamesMessageHookHan
@Override
public List<MailAddress> getRecipients() {
- return new ArrayList<MailAddress>(mail.getRecipients());
+ //TODO: not sure this MailAddress transformation code does the
right thing
+ List<MailAddress> mailAddressList = new ArrayList<MailAddress>();
+ for (org.apache.mailet.MailAddress address : mail.getRecipients())
{
+ try {
+ mailAddressList.add(new
MailAddress(address.getLocalPart(), address.getDomain()));
+ } catch (MailAddressException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ return mailAddressList;
}
@Override
@@ -282,5 +285,6 @@ public class DataLineJamesMessageHookHan
return -1;
}
}
+
}
-}
+}
\ No newline at end of file
Modified:
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
(original)
+++
james/server/trunk/protocols-smtp/src/main/java/org/apache/james/smtpserver/JamesDataCmdHandler.java
Wed Dec 26 12:11:40 2012
@@ -18,8 +18,6 @@
****************************************************************/
package org.apache.james.smtpserver;
-import javax.mail.MessagingException;
-
import org.apache.james.core.MailImpl;
import org.apache.james.core.MimeMessageInputStreamSource;
import org.apache.james.protocols.api.ProtocolSession.State;
@@ -36,17 +34,15 @@ public class JamesDataCmdHandler extends
/**
* Handler method called upon receipt of a DATA command. Reads in message
* data, creates header, and delivers to mail server service for delivery.
- *
- * @param session
- * SMTP session object
- * @param argument
- * the argument passed in with the command by the SMTP client
+ *
+ * @param session SMTP session object
+ * @param argument the argument passed in with the command by the SMTP
client
*/
protected SMTPResponse doDATA(SMTPSession session, String argument) {
try {
MimeMessageInputStreamSource mmiss = new
MimeMessageInputStreamSource(MailImpl.getId());
session.setAttachment(SMTPConstants.DATA_MIMEMESSAGE_STREAMSOURCE,
mmiss, State.Transaction);
- } catch (MessagingException e) {
+ } catch (Exception e) {
session.getLogger().warn("Error creating mimemessagesource for
incoming data", e);
return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unexpected error
preparing to receive DATA.");
}
Modified:
james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/mailet/MockMailContext.java
URL:
http://svn.apache.org/viewvc/james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/mailet/MockMailContext.java?rev=1425891&r1=1425890&r2=1425891&view=diff
==============================================================================
---
james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/mailet/MockMailContext.java
(original)
+++
james/server/trunk/protocols-smtp/src/test/java/org/apache/james/smtpserver/mock/mailet/MockMailContext.java
Wed Dec 26 12:11:40 2012
@@ -21,11 +21,15 @@ package org.apache.james.smtpserver.mock
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
+
+import org.apache.mailet.LookupException;
import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
import org.apache.mailet.MailetContext;
+import org.apache.mailet.TemporaryLookupException;
public class MockMailContext implements MailetContext {
@@ -42,6 +46,11 @@ public class MockMailContext implements
}
@Override
+ public List<String> dnsLookup(String s, RecordType recordType) throws
TemporaryLookupException, LookupException {
+ throw new UnsupportedOperationException("Not yet implemented");
+ }
+
+ @Override
public Collection getMailServers(String host) {
return null; // trivial implementation
}
@@ -103,6 +112,16 @@ public class MockMailContext implements
}
@Override
+ public void log(LogLevel logLevel, String s) {
+ //To change body of implemented methods use File | Settings | File
Templates.
+ }
+
+ @Override
+ public void log(LogLevel logLevel, String s, Throwable throwable) {
+ //To change body of implemented methods use File | Settings | File
Templates.
+ }
+
+ @Override
public void removeAttribute(String name) {
// trivial implementation
}
@@ -134,11 +153,6 @@ public class MockMailContext implements
}
@Override
- public void storeMail(MailAddress sender, MailAddress recipient,
MimeMessage msg) throws MessagingException {
- // trivial implementation
- }
-
- @Override
public Iterator getSMTPHostAddresses(String domainName) {
return null; // trivial implementation
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]