mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-22 14:22:05 +01:00
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:
parent
3299515b36
commit
ed4d815fba
2 changed files with 5 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue