You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2010/06/14 15:47:22 UTC

svn commit: r954476 - in /poi/trunk: src/documentation/content/xdocs/status.xml src/scratchpad/src/org/apache/poi/hsmf/MAPIMessage.java src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java test-data/hsmf/no_recipient_address.msg

Author: nick
Date: Mon Jun 14 13:47:22 2010
New Revision: 954476

URL: http://svn.apache.org/viewvc?rev=954476&view=rev
Log:
Better handling of Outlook messages in HSMF when there's no recipient email address

Added:
    poi/trunk/test-data/hsmf/no_recipient_address.msg   (with props)
Modified:
    poi/trunk/src/documentation/content/xdocs/status.xml
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/MAPIMessage.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java

Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=954476&r1=954475&r2=954476&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Mon Jun 14 13:47:22 2010
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.7-beta2" date="2010-??-??">
+           <action dev="POI-DEVELOPERS" type="fix">Better handling of Outlook messages in HSMF when there's no recipient email address</action>
            <action dev="POI-DEVELOPERS" type="fix">When formatting numbers with DataFormatter, handle brackets following colours</action>
         </release>
         <release version="3.7-beta1" date="2010-06-16">

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/MAPIMessage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/MAPIMessage.java?rev=954476&r1=954475&r2=954476&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/MAPIMessage.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/MAPIMessage.java Mon Jun 14 13:47:22 2010
@@ -239,7 +239,11 @@ public class MAPIMessage extends POIDocu
          if(email != null) {
             emails[i] = email;
          } else {
-            throw new ChunkNotFoundException("No email address holding chunks found for the " + (i+1) + "th recipient");
+            if(returnNullOnMissingChunk) {
+               emails[i] = null;
+            } else {
+               throw new ChunkNotFoundException("No email address holding chunks found for the " + (i+1) + "th recipient");
+            }
          }
       }
 
@@ -393,6 +397,7 @@ public class MAPIMessage extends POIDocu
       boolean first = true;
 
       for(String s : l) {
+         if(s == null) continue;
          if(first) {
             first = false;
          } else {

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java?rev=954476&r1=954475&r2=954476&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hsmf/TestBasics.java Mon Jun 14 13:47:22 2010
@@ -33,6 +33,7 @@ public final class TestBasics extends Te
    private MAPIMessage quick;
    private MAPIMessage outlook30;
    private MAPIMessage attachments;
+   private MAPIMessage noRecipientAddress;
 
 	/**
 	 * Initialize this test, load up the blank.msg mapi message.
@@ -44,6 +45,7 @@ public final class TestBasics extends Te
       quick  = new MAPIMessage(samples.openResourceAsStream("quick.msg"));
       outlook30  = new MAPIMessage(samples.openResourceAsStream("outlook_30_msg.msg"));
       attachments = new MAPIMessage(samples.openResourceAsStream("attachment_test_msg.msg"));
+      noRecipientAddress = new MAPIMessage(samples.openResourceAsStream("no_recipient_address.msg"));
 	}
 	
 	/**
@@ -140,4 +142,39 @@ public final class TestBasics extends Te
          // Good
       }
 	}
+	
+	/**
+	 * More missing chunk testing, this time for
+	 *  missing recipient email address
+	 */
+	public void testMissingAddressChunk() throws Exception {
+      assertEquals(false, noRecipientAddress.isReturnNullOnMissingChunk());
+
+      try {
+         noRecipientAddress.getRecipientEmailAddress();
+         fail();
+      } catch(ChunkNotFoundException e) {
+         // Good
+      }
+      try {
+         noRecipientAddress.getRecipientEmailAddressList();
+         fail();
+      } catch(ChunkNotFoundException e) {
+         // Good
+      }
+      
+      noRecipientAddress.setReturnNullOnMissingChunk(true);
+      
+      noRecipientAddress.getRecipientEmailAddress();
+      noRecipientAddress.getRecipientEmailAddressList();
+      assertEquals("", noRecipientAddress.getRecipientEmailAddress());
+      assertEquals(1, noRecipientAddress.getRecipientEmailAddressList().length);
+      assertEquals(null, noRecipientAddress.getRecipientEmailAddressList()[0]);
+      
+      // Check a few other bits too
+      assertEquals("Microsoft Outlook 2003 Team", noRecipientAddress.getDisplayFrom());
+      assertEquals("New Outlook User", noRecipientAddress.getDisplayTo());
+      
+      noRecipientAddress.setReturnNullOnMissingChunk(false);
+	}
 }

Added: poi/trunk/test-data/hsmf/no_recipient_address.msg
URL: http://svn.apache.org/viewvc/poi/trunk/test-data/hsmf/no_recipient_address.msg?rev=954476&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/hsmf/no_recipient_address.msg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org