Skip to content

Commit 9d89c30

Browse files
committed
#70 Added more defensive null/empty checks to Fail Fast (http://wiki.c2.com/?FailFast)
1 parent a99f74c commit 9d89c30

File tree

3 files changed

+30
-7
lines changed

3 files changed

+30
-7
lines changed

src/main/java/org/simplejavamail/converter/internal/mimemessage/MimeMessageException.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
import org.simplejavamail.MailException;
44

5+
import javax.annotation.Nonnull;
6+
import javax.annotation.Nullable;
7+
8+
import static org.simplejavamail.internal.util.Preconditions.checkNonEmptyArgument;
9+
510
/**
611
* This exception is used to communicate errors during parsing of a {@link javax.mail.internet.MimeMessage}.
712
*
@@ -12,7 +17,7 @@ class MimeMessageException extends MailException {
1217

1318
static final String INVALID_DOMAINKEY = "Error signing MimeMessage with DKIM";
1419

15-
MimeMessageException(final String message, final Exception cause) {
16-
super(message, cause);
20+
MimeMessageException(@Nonnull final String message, @Nullable final Exception cause) {
21+
super(checkNonEmptyArgument(message, "message"), cause);
1722
}
1823
}

src/main/java/org/simplejavamail/converter/internal/msgparser/OutlookMessageException.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
import org.simplejavamail.MailException;
44

5+
import javax.annotation.Nonnull;
6+
import javax.annotation.Nullable;
7+
8+
import static org.simplejavamail.internal.util.Preconditions.checkNonEmptyArgument;
9+
510
/**
611
* This exception is used to communicate errors during parsing of a MsgParser {@link org.simplejavamail.outlookmessageparser.model.OutlookMessage} of Outlook
712
* .msg data.
@@ -13,7 +18,7 @@ class OutlookMessageException extends MailException {
1318

1419
static final String ERROR_PARSING_OUTLOOK_MSG = "Unable to parse Outlook message";
1520

16-
OutlookMessageException(@SuppressWarnings("SameParameterValue") final String message, final Exception cause) {
17-
super(message, cause);
21+
OutlookMessageException(@SuppressWarnings("SameParameterValue") @Nonnull final String message, @Nullable final Exception cause) {
22+
super(checkNonEmptyArgument(message, "message"), cause);
1823
}
1924
}

src/main/java/org/simplejavamail/converter/internal/msgparser/OutlookMessageParser.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,45 @@
22

33
import org.simplejavamail.outlookmessageparser.model.OutlookMessage;
44

5+
import javax.annotation.Nonnull;
56
import java.io.File;
67
import java.io.IOException;
78
import java.io.InputStream;
89

10+
import static org.simplejavamail.internal.util.Preconditions.checkNonEmptyArgument;
11+
912
/**
1013
* Helper class that parses {@link OutlookMessage} instances from the {@link org.simplejavamail.outlookmessageparser.OutlookMessageParser} library.
1114
*/
1215
public final class OutlookMessageParser {
1316

14-
public static OutlookMessage parseOutlookMsg(final File msgFile) {
17+
private OutlookMessageParser() {
18+
// util / helper class
19+
}
20+
21+
@Nonnull
22+
public static OutlookMessage parseOutlookMsg(@Nonnull final File msgFile) {
23+
checkNonEmptyArgument(msgFile, "msgFile");
1524
try {
1625
return new org.simplejavamail.outlookmessageparser.OutlookMessageParser().parseMsg(msgFile);
1726
} catch (final IOException e) {
1827
throw new OutlookMessageException(OutlookMessageException.ERROR_PARSING_OUTLOOK_MSG, e);
1928
}
2029
}
2130

22-
public static OutlookMessage parseOutlookMsg(final InputStream msgInputStream) {
31+
@Nonnull
32+
public static OutlookMessage parseOutlookMsg(@Nonnull final InputStream msgInputStream) {
33+
checkNonEmptyArgument(msgInputStream, "msgInputStream");
2334
try {
2435
return new org.simplejavamail.outlookmessageparser.OutlookMessageParser().parseMsg(msgInputStream);
2536
} catch (final IOException e) {
2637
throw new OutlookMessageException(OutlookMessageException.ERROR_PARSING_OUTLOOK_MSG, e);
2738
}
2839
}
2940

30-
public static OutlookMessage parseOutlookMsg(final String msgData) {
41+
@Nonnull
42+
public static OutlookMessage parseOutlookMsg(@Nonnull final String msgData) {
43+
checkNonEmptyArgument(msgData, "msgData");
3144
try {
3245
return new org.simplejavamail.outlookmessageparser.OutlookMessageParser().parseMsg(msgData);
3346
} catch (final IOException e) {

0 commit comments

Comments
 (0)