mirror of https://github.com/apache/poi.git
Better handling of Outlook messages in HSMF when there's no recipient email address
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@954476 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
36c5190f57
commit
64cfb8b399
|
@ -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">
|
||||
|
|
|
@ -239,7 +239,11 @@ public class MAPIMessage extends POIDocument {
|
|||
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 POIDocument {
|
|||
boolean first = true;
|
||||
|
||||
for(String s : l) {
|
||||
if(s == null) continue;
|
||||
if(first) {
|
||||
first = false;
|
||||
} else {
|
||||
|
|
|
@ -33,6 +33,7 @@ public final class TestBasics extends TestCase {
|
|||
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 TestCase {
|
|||
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 TestCase {
|
|||
// 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);
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue