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/01/11 13:19:43 UTC
svn commit: r897847 - in /poi/trunk/src/scratchpad:
src/org/apache/poi/hsmf/MAPIMessage.java
testcases/org/apache/poi/hsmf/TestBasics.java
Author: nick
Date: Mon Jan 11 12:19:42 2010
New Revision: 897847
URL: http://svn.apache.org/viewvc?rev=897847&view=rev
Log:
Make it possible to return null on missing chunks, rather than the exception
Modified:
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/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=897847&r1=897846&r2=897847&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 Jan 11 12:19:42 2010
@@ -50,6 +50,8 @@
private NameIdChunks nameIdChunks;
private RecipientChunks recipientChunks;
private AttachmentChunks[] attachmentChunks;
+
+ private boolean returnNullOnMissingChunk = false;
/**
* Constructor for creating new files.
@@ -125,7 +127,11 @@
*/
public String getStringFromChunk(StringChunk chunk) throws ChunkNotFoundException {
if(chunk == null) {
- throw new ChunkNotFoundException();
+ if(returnNullOnMissingChunk) {
+ return null;
+ } else {
+ throw new ChunkNotFoundException();
+ }
}
return chunk.getValue();
}
@@ -230,6 +236,8 @@
if(mainChunks.submissionChunk != null) {
return mainChunks.submissionChunk.getAcceptedAtTime();
}
+ if(returnNullOnMissingChunk)
+ return null;
throw new ChunkNotFoundException();
}
@@ -268,4 +276,25 @@
public void write(OutputStream out) throws IOException {
throw new UnsupportedOperationException("Writing isn't yet supported for HSMF, sorry");
}
+
+
+ /**
+ * Will you get a null on a missing chunk, or a
+ * {@link ChunkNotFoundException} (default is the
+ * exception).
+ */
+ public boolean isReturnNullOnMissingChunk() {
+ return returnNullOnMissingChunk;
+ }
+
+ /**
+ * Sets whether on asking for a missing chunk,
+ * you get back null or a {@link ChunkNotFoundException}
+ * (default is the exception).
+ */
+ public void setReturnNullOnMissingChunk(boolean returnNullOnMissingChunk) {
+ this.returnNullOnMissingChunk = returnNullOnMissingChunk;
+ }
+
+
}
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=897847&r1=897846&r2=897847&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 Jan 11 12:19:42 2010
@@ -22,6 +22,7 @@
import junit.framework.TestCase;
import org.apache.poi.POIDataSamples;
+import org.apache.poi.hsmf.exceptions.ChunkNotFoundException;
/**
* Tests to verify that we can perform basic opperations on
@@ -74,4 +75,31 @@
assertEquals(0, outlook30.getAttachmentFiles().length);
assertEquals(2, attachments.getAttachmentFiles().length);
}
+
+ /**
+ * Test missing chunks
+ */
+ public void testMissingChunks() throws Exception {
+ assertEquals(false, attachments.isReturnNullOnMissingChunk());
+
+ try {
+ attachments.getMessageDate();
+ fail();
+ } catch(ChunkNotFoundException e) {
+ // Good
+ }
+
+ attachments.setReturnNullOnMissingChunk(true);
+
+ assertEquals(null, attachments.getMessageDate());
+
+ attachments.setReturnNullOnMissingChunk(false);
+
+ try {
+ attachments.getMessageDate();
+ fail();
+ } catch(ChunkNotFoundException e) {
+ // Good
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org