You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by se...@apache.org on 2014/12/28 22:01:51 UTC

svn commit: r1648251 - /commons/proper/net/trunk/src/main/java/examples/mail/IMAPExportMbox.java

Author: sebb
Date: Sun Dec 28 21:01:51 2014
New Revision: 1648251

URL: http://svn.apache.org/r1648251
Log:
Better handling of multiple item names

Modified:
    commons/proper/net/trunk/src/main/java/examples/mail/IMAPExportMbox.java

Modified: commons/proper/net/trunk/src/main/java/examples/mail/IMAPExportMbox.java
URL: http://svn.apache.org/viewvc/commons/proper/net/trunk/src/main/java/examples/mail/IMAPExportMbox.java?rev=1648251&r1=1648250&r2=1648251&view=diff
==============================================================================
--- commons/proper/net/trunk/src/main/java/examples/mail/IMAPExportMbox.java (original)
+++ commons/proper/net/trunk/src/main/java/examples/mail/IMAPExportMbox.java Sun Dec 28 21:01:51 2014
@@ -108,7 +108,7 @@ public final class IMAPExportMbox
             }
         }
 
-        int argCount = args.length - argIdx;
+        final int argCount = args.length - argIdx;
 
         if (argCount < 2)
         {
@@ -128,7 +128,26 @@ public final class IMAPExportMbox
         final URI uri      = URI.create(args[argIdx++]);
         final String file  = args[argIdx++];
         final String sequenceSet = argCount > 2 ? args[argIdx++] : "1:*";
-        final String itemNames   = argCount > 3 ? args[argIdx++] : "(INTERNALDATE BODY.PEEK[])";
+        final String itemNames;
+        // Handle 0, 1 or multiple item names
+        if (argCount > 3) {
+            if (argCount > 4) {
+                StringBuilder sb = new StringBuilder();
+                sb.append("(");
+                for(int i=4; i <= argCount; i++) {
+                    if (i>4) {
+                        sb.append(" ");
+                    }
+                    sb.append(args[argIdx++]);
+                }
+                sb.append(")");
+                itemNames = sb.toString();
+            } else {
+                itemNames = args[argIdx++];
+            }
+        } else {
+            itemNames = "(INTERNALDATE BODY.PEEK[])";
+        }
 
         final MboxListener chunkListener;
         if (file.equals("-")) {