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: <mybadret...@example.com>\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: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to