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>
|
<changes>
|
||||||
<release version="3.7-beta2" date="2010-??-??">
|
<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>
|
<action dev="POI-DEVELOPERS" type="fix">When formatting numbers with DataFormatter, handle brackets following colours</action>
|
||||||
</release>
|
</release>
|
||||||
<release version="3.7-beta1" date="2010-06-16">
|
<release version="3.7-beta1" date="2010-06-16">
|
||||||
|
|
|
@ -239,7 +239,11 @@ public class MAPIMessage extends POIDocument {
|
||||||
if(email != null) {
|
if(email != null) {
|
||||||
emails[i] = email;
|
emails[i] = email;
|
||||||
} else {
|
} 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;
|
boolean first = true;
|
||||||
|
|
||||||
for(String s : l) {
|
for(String s : l) {
|
||||||
|
if(s == null) continue;
|
||||||
if(first) {
|
if(first) {
|
||||||
first = false;
|
first = false;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -33,6 +33,7 @@ public final class TestBasics extends TestCase {
|
||||||
private MAPIMessage quick;
|
private MAPIMessage quick;
|
||||||
private MAPIMessage outlook30;
|
private MAPIMessage outlook30;
|
||||||
private MAPIMessage attachments;
|
private MAPIMessage attachments;
|
||||||
|
private MAPIMessage noRecipientAddress;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize this test, load up the blank.msg mapi message.
|
* 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"));
|
quick = new MAPIMessage(samples.openResourceAsStream("quick.msg"));
|
||||||
outlook30 = new MAPIMessage(samples.openResourceAsStream("outlook_30_msg.msg"));
|
outlook30 = new MAPIMessage(samples.openResourceAsStream("outlook_30_msg.msg"));
|
||||||
attachments = new MAPIMessage(samples.openResourceAsStream("attachment_test_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
|
// 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