1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-22 22:32:06 +01:00

Merge pull request #123 from vanitasvitae/4.2getOrCreateLeafNode

Fix getOrCreateLeafNode for Prosody
This commit is contained in:
Florian Schmaus 2017-04-19 11:45:59 +02:00 committed by GitHub
commit 7cc9e9ffcc

View file

@ -289,16 +289,16 @@ public final class PubSubManager extends Manager {
throw e2; throw e2;
} }
} }
if (e1.getXMPPError().getCondition() == Condition.service_unavailable) {
// This could be caused by Prosody bug #805 (see https://prosody.im/issues/issue/805). Prosody does not
// answer to disco#info requests on the node ID, which makes it undecidable if a node is a leaf or
// collection node.
LOGGER.warning("The PubSub service " + pubSubService
+ " threw an DiscoInfoNodeAssertionError, trying workaround for Prosody bug #805 (https://prosody.im/issues/issue/805)");
return getOrCreateLeafNodeProsodyWorkaround(id);
}
throw e1; throw e1;
} }
catch (PubSubAssertionError.DiscoInfoNodeAssertionError e) {
// This could be caused by Prosody bug #805 (see https://prosody.im/issues/issue/805). Prosody does not
// answer to disco#info requests on the node ID, which makes it undecidable if a node is a leaf or
// collection node.
LOGGER.warning("The PubSub service " + pubSubService
+ " threw an DiscoInfoNodeAssertionError, trying workaround for Prosody bug #805 (https://prosody.im/issues/issue/805)");
return getOrCreateLeafNodeProsodyWorkaround(id);
}
} }
private LeafNode getOrCreateLeafNodeProsodyWorkaround(final String id) private LeafNode getOrCreateLeafNodeProsodyWorkaround(final String id)