diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptManager.java
index dbfd61436..c310ceb25 100644
--- a/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptManager.java
+++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/receipts/DeliveryReceiptManager.java
@@ -1,6 +1,6 @@
/**
*
- * Copyright 2013-2014 Georg Lukas, 2015 Florian Schmaus
+ * Copyright 2013-2014 Georg Lukas, 2015-2019 Florian Schmaus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -74,8 +74,16 @@ import org.jxmpp.jid.Jid;
*/
public final class DeliveryReceiptManager extends Manager {
- private static final StanzaFilter MESSAGES_WITH_DELIVERY_RECEIPT_REQUEST = new AndFilter(StanzaTypeFilter.MESSAGE,
- new StanzaExtensionFilter(new DeliveryReceiptRequest()));
+ /**
+ * Filters all non-error messages with receipt requests.
+ * See XEP-0184 § 5. "A sender could request receipts
+ * on any non-error content message (chat, groupchat, headline, or normal)…"
+ */
+ private static final StanzaFilter NON_ERROR_GROUPCHAT_MESSAGES_WITH_DELIVERY_RECEIPT_REQUEST = new AndFilter(
+ StanzaTypeFilter.MESSAGE,
+ new StanzaExtensionFilter(new DeliveryReceiptRequest()),
+ new NotFilter(MessageTypeFilter.ERROR));
+
private static final StanzaFilter MESSAGES_WITH_DELIVERY_RECEIPT = new AndFilter(StanzaTypeFilter.MESSAGE,
new StanzaExtensionFilter(DeliveryReceipt.ELEMENT, DeliveryReceipt.NAMESPACE));
@@ -175,7 +183,7 @@ public final class DeliveryReceiptManager extends Manager {
}
connection.sendStanza(ack);
}
- }, MESSAGES_WITH_DELIVERY_RECEIPT_REQUEST);
+ }, NON_ERROR_GROUPCHAT_MESSAGES_WITH_DELIVERY_RECEIPT_REQUEST);
}
/**
diff --git a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java
index 12cc680fe..e83c588f6 100644
--- a/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java
+++ b/smack-resolver-javax/src/main/java/org/jivesoftware/smack/util/dns/javax/JavaxResolver.java
@@ -1,6 +1,6 @@
/**
*
- * Copyright 2013-2018 Florian Schmaus
+ * Copyright 2013-2019 Florian Schmaus
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@ package org.jivesoftware.smack.util.dns.javax;
import java.net.InetAddress;
import java.util.ArrayList;
-import java.util.Hashtable;
import java.util.List;
import java.util.logging.Level;
@@ -52,11 +51,9 @@ public class JavaxResolver extends DNSResolver implements SmackInitializer {
static {
try {
- Hashtable env = new Hashtable<>();
- env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
- dirContext = new InitialDirContext(env);
- } catch (Exception e) {
- // Ignore.
+ dirContext = new InitialDirContext();
+ } catch (NamingException e) {
+ LOGGER.log(Level.SEVERE, "Could not construct InitialDirContext", e);
}
// Try to set this DNS resolver as primary one