From fb82e04109720e13da938ba6be5807ddb0631ecd Mon Sep 17 00:00:00 2001 From: vfite Date: Mon, 27 Feb 2017 14:14:04 +0200 Subject: [PATCH] add parsing non stream errors for BOSH --- .../org/jivesoftware/smack/bosh/XMPPBOSHConnection.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java index abf9105f6..b91bb5a40 100644 --- a/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java +++ b/smack-bosh/src/main/java/org/jivesoftware/smack/bosh/XMPPBOSHConnection.java @@ -38,6 +38,7 @@ import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Stanza; import org.jivesoftware.smack.packet.Nonza; import org.jivesoftware.smack.packet.Presence; +import org.jivesoftware.smack.packet.XMPPError; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure; import org.jivesoftware.smack.sasl.packet.SaslStreamElements.Success; import org.jivesoftware.smack.util.PacketParserUtils; @@ -529,7 +530,13 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { } break; case "error": - throw new StreamErrorException(PacketParserUtils.parseStreamError(parser)); + //Some bosh error isn't stream error. + if ("urn:ietf:params:xml:ns:xmpp-streams".equals(parser.getNamespace(null))) { + throw new StreamErrorException(PacketParserUtils.parseStreamError(parser)); + } else { + XMPPError.Builder builder = PacketParserUtils.parseError(parser); + throw new XMPPException.XMPPErrorException(null, builder.build()); + } } break; }