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 c3d7109f8..a88507719 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 @@ -43,6 +43,7 @@ import org.jivesoftware.smack.packet.StanzaError; import org.jivesoftware.smack.util.CloseableUtil; import org.jivesoftware.smack.util.PacketParserUtils; import org.jivesoftware.smack.xml.XmlPullParser; +import org.jivesoftware.smack.xml.XmlPullParserException; import org.igniterealtime.jbosh.AbstractBody; import org.igniterealtime.jbosh.BOSHClient; @@ -200,6 +201,13 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { + getHost() + ":" + getPort() + "."; throw new SmackException.SmackMessageException(errorMessage); } + + try { + XmlPullParser parser = PacketParserUtils.getParserFor(""); + onStreamOpen(parser); + } catch (XmlPullParserException | IOException e) { + throw new AssertionError("Failed to setup stream environment", e); + } } @Override @@ -511,7 +519,7 @@ public class XMPPBOSHConnection extends AbstractXMPPConnection { parseAndProcessStanza(parser); break; case "features": - parseFeatures(parser); + parseFeaturesAndNotify(parser); break; case "error": // Some BOSH error isn't stream error.