Make Message.setType(Type) not throw if type is null

RFC 6121 § 5.2.2:
"""
If an application receives a message with no 'type' attribute or the
application does not understand the value of the 'type' attribute
provided, it MUST consider the message to be of type "normal" (i.e.,
"normal" is the default).
"""
This commit is contained in:
Florian Schmaus 2015-01-26 20:26:13 +01:00
parent 3299515b36
commit ed4d815fba
2 changed files with 5 additions and 14 deletions

View File

@ -55,7 +55,7 @@ public final class Message extends Packet {
public static final String ELEMENT = "message";
public static final String BODY = "body";
private Type type = Type.normal;
private Type type;
private String thread = null;
private final Set<Subject> subjects = new HashSet<Subject>();
@ -105,6 +105,9 @@ public final class Message extends Packet {
* @return the type of the message.
*/
public Type getType() {
if (type == null) {
return Type.normal;
}
return type;
}
@ -112,12 +115,8 @@ public final class Message extends Packet {
* Sets the type of the message.
*
* @param type the type of the message.
* @throws IllegalArgumentException if null is passed in as the type
*/
public void setType(Type type) {
if (type == null) {
throw new IllegalArgumentException("Type cannot be null.");
}
this.type = type;
}
@ -404,9 +403,7 @@ public final class Message extends Packet {
XmlStringBuilder buf = new XmlStringBuilder();
buf.halfOpenElement(ELEMENT);
addCommonAttributes(buf);
if (type != Type.normal) {
buf.attribute("type", type);
}
buf.optAttribute("type", type);
buf.rightAngleBracket();
// Add the subject in the default language

View File

@ -69,12 +69,6 @@ public class MessageTest {
assertXMLEqual(control, messageTypeSet.toXML().toString());
}
@Test(expected=IllegalArgumentException.class)
public void setMessageTypeNullTest() {
Message message = getNewMessage();
message.setType(null);
}
@Test(expected=NullPointerException.class)
public void setNullMessageBodyTest() {
Message message = getNewMessage();