<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-842'>SMACK-842</a>] - The RFC 3920 xml-not-well-formed error condition should be handled in stream error not a stanza error
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-843'>SMACK-843</a>] - ManManager.pagePrevious() pages into the wrong direction
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-844'>SMACK-844</a>] - Check if bounded unacknowledged stanzas queue is full before adding to it to avoid IllegalStateException
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-845'>SMACK-845</a>] - Ensure that IQ response 'to' address and ID are set correctly
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-846'>SMACK-846</a>] - XMPPTCPConnection does not wait for stream features after authentication if compression is disabled
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-848'>SMACK-848</a>] - Make MultiUserChat.leave() wait for response
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-850'>SMACK-850</a>] - DeliveryReceiptManager should not send receipts with messages of type 'groupchat'
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-855'>SMACK-855</a>] - XMPPTCPConnection sometimes has two writer threads running
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-847'>SMACK-847</a>] - Make TCP socket connection attempt interruptable
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-849'>SMACK-849</a>] - Smack Local SOCKS5 Proxy thread should be marked as daemon thread
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-833'>SMACK-833</a>] - XMLUtil.prettyFormatXml() throws on some Android devices
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-829'>SMACK-829</a>] - Disconnect BOSH client on shutdown
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-838'>SMACK-838</a>] - FormField.getFirstValue() throws IndexOutOfBoundsException if there are no values
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-759'>SMACK-759</a>] - PubSubManager.getLeafNode() throws PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but its not a PubSub Node
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-814'>SMACK-814</a>] - NPE when using Node.getAffiliationsAsOwner()
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-815'>SMACK-815</a>] - XEP-0184: DeliveryReceipt requires ID, although the XEP defines it as optional attribute
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-818'>SMACK-818</a>] - EntityCapsManager sends presences with multiple CapsExtension causing disco#info lookup to fail
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-819'>SMACK-819</a>] - ConcurrentModification Exception in MultiUserChatManager.java
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-820'>SMACK-820</a>] - DNSUtil.setDaneProvider() does not set the DANE provider
</li>
</ul>
<h2> Task
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-769'>SMACK-769</a>] - Rename XMPPError to StanzaError
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-776'>SMACK-776</a>] - Remove deprecated reconnection callbacks in ConnectionListener
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-761'>SMACK-761</a>] - Adopt ChatStateManager to new Chat API (chat2)
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-804'>SMACK-804</a>] - ServiceAdministrationManager does not use correct form actions
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-805'>SMACK-805</a>] - ServiceDiscoveryManager.findService() only considers the first service by feature
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-813'>SMACK-813</a>] - Smack uses hostname instead of XMPP service name for SNI
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-794'>SMACK-794</a>] - Add support for XEP-0394: Message Markup
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-795'>SMACK-795</a>] - Add support for XEP-0382: Spoiler messages
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-799'>SMACK-799</a>] - Add support for XEP-0372: References
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-800'>SMACK-800</a>] - Add support for XEP-0392: Consistent Color Generation
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-802'>SMACK-802</a>] - Rename and deprecate: addPacketSendingListener(), removePacketSendingListener(), addPacketInterceptor() and removePacketInterceptor()
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-809'>SMACK-809</a>] - Make Roster's non-roster presence map second-level map bounded
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-788'>SMACK-788</a>] - NullPointerException if hostAddresses is null
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-789'>SMACK-789</a>] - AffiliationsExtension toXml() produces invalid XML
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-790'>SMACK-790</a>] - Some HTTP File Upload elements are not correctly parsed and serialized
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-791'>SMACK-791</a>] - NumberFormatException in IpAddressUtil.isIPv4LiteralAddress
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-796'>SMACK-796</a>] - SOCKS5 authentication erroneously uses 'user' when it should use 'passwd', causes authentication to fail
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-775'>SMACK-775</a>] - Create callback interface for ReconnectionManager
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-778'>SMACK-778</a>] - ReconnectionManager.reconnect() can throw NotConnectedException
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-779'>SMACK-779</a>] - smack-android erroneously depends on smack-omemo and smack-omemo-signal
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-780'>SMACK-780</a>] - PushNotificationManager's isSupported logic does query the server, whereas it should query the bare JID
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-781'>SMACK-781</a>] - MiniDnsResolver does not correctly handle the case when NOERROR is returned together with an empty answer section.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-782'>SMACK-782</a>] - MultiUserChat does not remove the subject listener causing a memory leak
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-783'>SMACK-783</a>] - InvitationRejectionListener fires multiple times
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-784'>SMACK-784</a>] - StringUtils.numbersAndLetters has the numbers twice, resulting in a lower entropy
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-785'>SMACK-785</a>] - OfflineMessageManager.getMessages() does count the pending messages incorrectly, causing an unnecessary delay
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-786'>SMACK-786</a>] - Race condition when resuming a stream
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-787'>SMACK-787</a>] - Presence.getPriority() may return Integer.MIN_VALUE.
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-749'>SMACK-749</a>] - SCRAM-SHA-1 and SCRAM-SHA-1-PLUS SASL mechanisms have the same priority, causing SASL authentication failures
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-755'>SMACK-755</a>] - DIGEST-MD5 sometimes causes malformed request server response
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-756'>SMACK-756</a>] - IoTIsFriendResponse has invalid name and produces invalid XML
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-759'>SMACK-759</a>] - PubSubManager.getLeafNode() throws PubSubAssertionError.DiscoInfoNodeAssertionError if node exists but its not a PubSub Node
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-764'>SMACK-764</a>] - NPE in hashCode() in Occupant when jid is null
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-766'>SMACK-766</a>] - Smack possibly includes 'ask' attribute in roster items when sending requests
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-768'>SMACK-768</a>] - Smack throws NoResponse timeout when waiting for IQ although there was a response
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-771'>SMACK-771</a>] - XMPPTCPConnection should use KeyManagerFactory.getDefaultAlgorithm() instead of KeyManagerFactory.getInstance("sunX509");
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-772'>SMACK-772</a>] - HostAddress must deal with 'fqdn' being null.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-773'>SMACK-773</a>] - Allow roster pushes from our full JID for backwards compatibility
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-774'>SMACK-774</a>] - HTTP File Upload's SlotRequest metadata should be attributes not child elements
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-746'>SMACK-746</a>] - Add support for XEP-0380: Explicit Message Encryption
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-758'>SMACK-758</a>] - Add support for XEP-0334: Message Processing Hints
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-760'>SMACK-760</a>] - Smack does not allow custom extension elements in SM's <failed/>
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-752'>SMACK-752</a>] - XEP-0357 Push Notification enable IQ uses wrong form type: Should be 'submit' instead of 'form'
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-754'>SMACK-754</a>] - Allow MUC room subject changes from the MUCs bare JID
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-777'>SMACK-777</a>] - MamManager should use the user's bare JID to check if MAM is supported
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-639'>SMACK-639</a>] - Add support for pre-approved subscription requests (RFC 6121 § 3.4)
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-306'>SMACK-306</a>] - loadRosterOnLogin has non-trivial side effect on getRoster
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-416'>SMACK-416</a>] - Refactor PEP to make it use the existing pubsub API.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-674'>SMACK-674</a>] - PubSub Affiliation extension element is missing 'jid' attribute, and is using wrong element name 'subscription'
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-682'>SMACK-682</a>] - Add support for "XEP-0360: Nonzas (are not Stanzas)"
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-683'>SMACK-683</a>] - Using a Proxy with XMPPTCPConnection failes with "SocketException: Unconnected sockets not implemented"
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-691'>SMACK-691</a>] - Add support for MUCItem's Actor 'nick'
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-705'>SMACK-705</a>] - PubSub's Affiliation.getElementName() returns wrong name
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-723'>SMACK-723</a>] - Support "Caps Optimizations" (XEP-0115 § 8.4)
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-724'>SMACK-724</a>] - Do not re-use the Socket after connect() failed.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-725'>SMACK-725</a>] - ReconnectionManager should handle AlreadyConnectedException and AlreadyLoggedInException not as failure
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-741'>SMACK-741</a>] - Ad-hoc command 'note' element 'type' attribute should be treated as optional
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-745'>SMACK-745</a>] - Memory leak in MultiUserChat
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-366'>SMACK-366</a>] - Add support for DNSSEC.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-610'>SMACK-610</a>] - Add support for XEP-0080: User Location
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-619'>SMACK-619</a>] - Add roomDestroyed to MUC UserStatusListener
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-625'>SMACK-625</a>] - Add support for XEP-313: Message Archive Management
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-675'>SMACK-675</a>] - Add support for PubSub affiliation actions as owner
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-677'>SMACK-677</a>] - Add support for SASL 'authzid' (Authorization Identity)
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-690'>SMACK-690</a>] - Add support for DNS-Based Authentication of Named Entities (DANE, RFC 6698)
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-731'>SMACK-731</a>] - Add support for XEP-0191: Blocking Command
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-732'>SMACK-732</a>] - Smack should be able to handle "single equals sign" SASL responses
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-740'>SMACK-740</a>] - Add support for Multi-User Chat Light
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-742'>SMACK-742</a>] - Add support for XEP-0133: Service Administration
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-747'>SMACK-747</a>] - Add support for XEP-0363: HTTP File Upload
</li>
</ul>
<h2> Task
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-638'>SMACK-638</a>] - Call connection creation listeners from within AbstractXMPPConnection's constructor
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-644'>SMACK-644</a>] - Throw exception if account creation or password change is performed over insecure connections
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-655'>SMACK-655</a>] - Enable StreamManagement by default
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-372'>SMACK-372</a>] - Make package protected methods in PEPItem public
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-572'>SMACK-572</a>] - Rejoin MUC rooms after reconnect
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-628'>SMACK-628</a>] - Rework Roster handling with anonymous connections
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-629'>SMACK-629</a>] - Rework how Smack handles anonymous connections
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-631'>SMACK-631</a>] - Improve ParsingExceptionCallback, allow it to be a functional interface
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-632'>SMACK-632</a>] - Make Smack interruptible
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-633'>SMACK-633</a>] - Allow clean and graceful disconnects (stream closing)
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-634'>SMACK-634</a>] - Use jxmpp-jid, add Jid class to replace String's being used as JIDs
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-646'>SMACK-646</a>] - Add support for MUC roomnick rewrite
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-647'>SMACK-647</a>] - Don't automatically call login() on connect() if the connection was authenticated before
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-648'>SMACK-648</a>] - Improve MultiUserChat API
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-657'>SMACK-657</a>] - Rename RosterEntry.getStatus and RosterPacket.ItemStatus to ItemAskStatus
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-663'>SMACK-663</a>] - Roster should be fully loaded when Roster.getInstanceFor(XMPPConnection) is called with a authenticated connection
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-665'>SMACK-665</a>] - Rename 'serviceName' to 'xmppServiceDomain'
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-666'>SMACK-666</a>] - Typo in 'RosterEntries.rosterEntires()', change to 'RosterEntries.rosterEntries()'
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-703'>SMACK-703</a>] - Limit the stored presences of entities not in Roster
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-704'>SMACK-704</a>] - Pass down Message stanza in ChatStateListener
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-711'>SMACK-711</a>] - Improve the logging of TCP connection attempts.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-720'>SMACK-720</a>] - Improve support for Tor and Hidden Services.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-721'>SMACK-721</a>] - Report illegal Stream Management states to avoid OOM Exception
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-727'>SMACK-727</a>] - Add partial support for the IoT XEPs (XEP-0323, -0324, -0325, -0347)
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-733'>SMACK-733</a>] - Handle outgoing 'unavailable' Presences in Roster
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-736'>SMACK-736</a>] - Add support for Chat Markers (XEP-0333)
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-737'>SMACK-737</a>] - Add support for Bits of Binary (XEP-0231)
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-738'>SMACK-738</a>] - Add support for Push Notifications (XEP-0357)
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-739'>SMACK-739</a>] - Smack starts SASL step without TLS in case STARTTLS is stripped even if SecurityMode.Required is used
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-735'>SMACK-735</a>] - Smack sometimes sends invalid SCRAM-SHA1 nonce
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-724'>SMACK-724</a>] - Do not re-use the Socket after connect() failed.
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-725'>SMACK-725</a>] - ReconnectionManager should handle AlreadyConnectedException and AlreadyLoggedInException not as failure
</li>
<li>[<ahref='https://issues.igniterealtime.org/browse/SMACK-726'>SMACK-726</a>] - 'purge' and 'remove' IQ of XEP-0013 must be of type 'set'
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-712'>SMACK-712</a>] - XMPPTCPConnection's setEnabledSSL(Protocols|Ciphers) has no effect
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-716'>SMACK-716</a>] - EntityTimeManager.getTime() does not set the recipients JID
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-719'>SMACK-719</a>] - XMPPError should use Locale.US in toUpperCase()
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-705'>SMACK-705</a>] - PubSub's Affiliation.getElementName() returns wrong name
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-706'>SMACK-706</a>] - Smack may sends <bind/> and <session/> twice if Stream Management is used and a previous SM state exists
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-707'>SMACK-707</a>] - Infinite loop of NullPointerExceptions in Socks5Proxy
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-708'>SMACK-708</a>] - DeliveryReceipt(Manager) should ensure that receipts (and requests) have an ID set
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-709'>SMACK-709</a>] - Don't request delivery receipts for messages without a body
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-710'>SMACK-710</a>] - SASL DIGEST-MD5 backslash must be quoted
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-698'>SMACK-698</a>] - Time creates invalid XML
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-700'>SMACK-700</a>] - Duplicate stanzas in unacknowledgedStanzas queue when stream is resumed
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-702'>SMACK-702</a>] - RejectedExecutionException in AbstractXMPPConnection.processPacket() causes connection Termination
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-688'>SMACK-688</a>] - Reset carbons state if session got not resumed or cleanly disconnected
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-689'>SMACK-689</a>] - PEPPubSub creates malformed XML
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-693'>SMACK-693</a>] - MultiUserChat's UserStatusListener is not getting triggered
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-695'>SMACK-695</a>] - JSON and GCM parser does an erroneous extra next()
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-697'>SMACK-697</a>] - PrivacyListManager should handle the case where not default and active list are currently set
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-686'>SMACK-686</a>] - Provide a hint that connect() needs to be called prior login() in NotConnectedException
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-687'>SMACK-687</a>] - Update to jxmpp 0.4.2
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-696'>SMACK-696</a>] - Drop stream state after stream error
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-679'>SMACK-679</a>] - Memory leak in Socks5BytestreamManager. Should use weak map for 'managers'
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-680'>SMACK-680</a>] - XHTML bodies are un-escaped after parsing
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-681'>SMACK-681</a>] - Roster presence callbacks may not be invoked right after login
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-664'>SMACK-664</a>] - Invalid IQ error response to OfferRequestPacket and OfferRevokePacket
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-668'>SMACK-668</a>] - ReconnectionManager's value of 'attempts' is not reset after successful reconnection
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-669'>SMACK-669</a>] - Only add Entity Capabilities extension to available presences
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-670'>SMACK-670</a>] - SASLMechanism.authenticate should treat an empty byte array like 'null' byte array
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-672'>SMACK-672</a>] - Memory leak caused by RosterGroup declaring a strong reference to XMPPConnection
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-673'>SMACK-673</a>] - VCard API does not support all elements
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-676'>SMACK-676</a>] - ConcurrentModificationException in ServerPingWithAlarmManager
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-678'>SMACK-678</a>] - Login hangs if starttls advertised, but security is set to 'disabled' and compression is also advertised
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-667'>SMACK-667</a>] - Request Stream Mangement Acknowledgement after re-sending unack'ed stanzas after stream resumption
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-671'>SMACK-671</a>] - Don't disable Scoks5BytestreamManager on connection termination
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-649'>SMACK-649</a>] - DIGEST-MD5 challenge/response parsing must handle linear white spaces after the comma
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-652'>SMACK-652</a>] - SynchronizationPoint should use signalAll
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-653'>SMACK-653</a>] - Integer overflow if both client and server don't specify a max resumption time
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-656'>SMACK-656</a>] - DeliveryReceipts auto add should use packet interceptors and should not be requested for messages with ACKs.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-659'>SMACK-659</a>] - Memory leak caused by RosterEntry declaring a strong reference to XMPPConnection
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-660'>SMACK-660</a>] - ReconnectionManager's RANDOM_INCREASING_DELAY is erroneously using a fixed value.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-661'>SMACK-661</a>] - Add method to set ProxyInfo in ConnectionConfiguration.Builder
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-662'>SMACK-662</a>] - RosterEntry.setName() does not change the name
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-398'>SMACK-398</a>] - Implement SCRAM support
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-65'>SMACK-65</a>] - Packet parsing should look for depth
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-237'>SMACK-237</a>] - Handle more vCard values (XEP-0054)
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-383'>SMACK-383</a>] - Allow the garbage collection of all object instances of a closed and unreferenced connection
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-424'>SMACK-424</a>] - Add a MultiUserChat.presenceChanged callback method to be informed if a presence within a MUC has changed (joined, leaved, status change)
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-542'>SMACK-542</a>] - MUC: RoomInfo should hold more data if the result contains a FORM_TYPE field
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-549'>SMACK-549</a>] - MUCUser#getStatus should be a List
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-564'>SMACK-564</a>] - Some tests fail with Java 8
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-570'>SMACK-570</a>] - Smack does not support resourceparts which contain the '@' character.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-571'>SMACK-571</a>] - Don't remove the MUC listeners after a disconnect() , keep state of Connection between disconnect() and connect()/login()
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-573'>SMACK-573</a>] - MessageEventManager treats error replies as message events
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-583'>SMACK-583</a>] - PacketListeners may not be invoked in delivery order
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-585'>SMACK-585</a>] - XMPPTCPConnection does not set 'host' and 'port'
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-590'>SMACK-590</a>] - Don't use IQReplyFilter for the bind set/result exchange
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-604'>SMACK-604</a>] - MUCUser must support multiple status codes
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-620'>SMACK-620</a>] - Smack should use a safe SAX parser, e.g. with entity reference expansion disabled
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-635'>SMACK-635</a>] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-643'>SMACK-643</a>] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-340'>SMACK-340</a>] - Should make the wait/timeouts on SASL authentication configurable.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-402'>SMACK-402</a>] - Update obsolete "Message Delivery Receipts" support from (JEP|XEP)-0022 to XEP-0184
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-453'>SMACK-453</a>] - Add support for all primitive types in IntrospectionProvider.decode()
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-521'>SMACK-521</a>] - Clear PacketWriters queue when the connection is shut down
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-532'>SMACK-532</a>] - Evaluate if its possible to guarantee the order of listeners by using a LinkedHashMap
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-566'>SMACK-566</a>] - Create public method that parses Strings/CharSequences to messages, IQs and presence instances
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-587'>SMACK-587</a>] - Subprojects should uses versions when importing the OSGi smack-core components
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-595'>SMACK-595</a>] - Add an API to send a stanza and wait asynchronously for a response
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-599'>SMACK-599</a>] - Provide string messages to all exceptions thrown by Smack
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-600'>SMACK-600</a>] - RoomInfo Class should add the information from the Identity element.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-608'>SMACK-608</a>] - Add support for XMPP error conditions text
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-622'>SMACK-622</a>] - Add support for 'optional' in session stream features
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-626'>SMACK-626</a>] - Add support for 'ofrom' Extended Stanza Addressing type
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-627'>SMACK-627</a>] - Smack should allow null usernames under certain circumstances
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-645'>SMACK-645</a>] - Roster should not leak internal state e.g. presences
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-234'>SMACK-234</a>] - Add support for SASL EXTERNAL: PKI (Client SSL Cert) Support
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-378'>SMACK-378</a>] - Give access to the socket outside the XMPPconnection
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-581'>SMACK-581</a>] - Add support for "Result Set Management" (XEP-59)
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-607'>SMACK-607</a>] - Add support for XEP-0352: Client State Indication
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-612'>SMACK-612</a>] - Add support for XEP-0141: Data Forms Layout
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-621'>SMACK-621</a>] - Add support for XEP-0122: Data Forms Validation
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-623'>SMACK-623</a>] - Add API to retrieve the subscriptions of a PubSub node as owner
</li>
</ul>
<h2> Task
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-365'>SMACK-365</a>] - SmackConfiguration should only report errors if the file fails to load, not when it fails to load for a specific classloader.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-569'>SMACK-569</a>] - Move Message Event code to legacy subproject
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-578'>SMACK-578</a>] - Remove decorators for "Legacy Delayed Delivery" (XEP-91) in favor of Delayed Delivery (XEP-203)
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-579'>SMACK-579</a>] - FileTransferManager and FileTransferNegoiator should use WeakHashMaps and extend Manager
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-635'>SMACK-635</a>] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-643'>SMACK-643</a>] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-616'>SMACK-616</a>] - Smack should fallback to using host with default port if DNS SRV lookup fails
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-617'>SMACK-617</a>] - Message Digest in EntityCapsManager should be synchronized
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-609'>SMACK-609</a>] - PingManager.ping(String, long) does not respect timeout
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-613'>SMACK-613</a>] - Parsing exception causes infinite loop if the exception is not thrown
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-596'>SMACK-596</a>] - Smack should load roster before sending the initial presence
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-598'>SMACK-598</a>] - Smack should allow the empty string as content of message body element
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-601'>SMACK-601</a>] - PubSub ItemProvider does only process the outermost namespace definition when creating PayloadItems
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-602'>SMACK-602</a>] - PacketCollector must handle InterruptException
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-603'>SMACK-603</a>] - XMPPError.Condition.equals() should be null-safe
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-589'>SMACK-589</a>] - FormField.Option toXML() produces malformed XML
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-592'>SMACK-592</a>] - OfflineMessagesManager.getMessages() does send request before collector is set up and could leak collector
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-594'>SMACK-594</a>] - PrivateData Bookmarks.toXML() returns invalid XML
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-588'>SMACK-588</a>] - Typo in org.jivesoftware.smackx.pubsub.ConfigureForm: s/isSubscibe/isSubscribe/
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-593'>SMACK-593</a>] - Smack should prefer full flush over sync flush when using compression
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-346'>SMACK-346</a>] - Bug in return code for rejection handling in FileTransferManager
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-574'>SMACK-574</a>] - Documentation still refers at some places to Connection
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-575'>SMACK-575</a>] - PingManager schedules pings after pingInterval when it should be use nextPingIn instead
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-577'>SMACK-577</a>] - Bookmarks and FormField toXml() methods do not properly escape XML
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-583'>SMACK-583</a>] - PacketListeners may not be invoked in delivery order
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-576'>SMACK-576</a>] - smack-resolver-javax should become a OSGi ServiceComponent
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-580'>SMACK-580</a>] - Add support for retrieving a PubSub node's affiliations
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-445'>SMACK-445</a>] - XMPPError class is based on deprecated XEP-0086
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-357'>SMACK-357</a>] - Error in SASL authentication when SASL authzid parameter is null
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-410'>SMACK-410</a>] - Any valid SSL server certificate can be used to perform a man-in-the-middle attack
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-411'>SMACK-411</a>] - ServiceDiscoveryManager identities should be non-static and kept in a Set to allow multiple identities as per XEP-30
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-414'>SMACK-414</a>] - Smack does not announce the support for XEP-54 aka vcard-temp
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-427'>SMACK-427</a>] - Typo in code - StreamInitiation.setSesssionID()
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-467'>SMACK-467</a>] - Don't use the default locale for machine-readable output, use Locale.US instead
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-531'>SMACK-531</a>] - Add missing namespace attribute to XHTML-IM body tags
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-533'>SMACK-533</a>] - Smack should prevent IQ response spoofing
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-535'>SMACK-535</a>] - jul.properties should only configure the 'org.igniterealtime' namespace
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-538'>SMACK-538</a>] - ParseRoster does not check the sender of the roster and for pending roster queries
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-541'>SMACK-541</a>] - XHTMLExtensionProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-543'>SMACK-543</a>] - packet.Time is not thread-safe
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-546'>SMACK-546</a>] - PubSub's Item needs to escape its XML payload
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-548'>SMACK-548</a>] - PingManager notifies pingFailedListeners multiple times
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-551'>SMACK-551</a>] - ChatManager throws NPE, when Message has no 'from' attribute
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-554'>SMACK-554</a>] - Memory leak in BookmarkManager
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-555'>SMACK-555</a>] - VCardProvider should consider some elements as optional
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-558'>SMACK-558</a>] - connect() must wait until the stream features have been parsed
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-559'>SMACK-559</a>] - Roster entries without a group are not updated
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-560'>SMACK-560</a>] - Race condition in PacketWriter
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-356'>SMACK-356</a>] - There is no way to reliably end a Chat and have a new one created.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-454'>SMACK-454</a>] - Follow XEP-0170 recommendation: Compression before Resource Binding
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-459'>SMACK-459</a>] - Add option to configure the default identity in ServiceDiscoveryManager
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-465'>SMACK-465</a>] - Replace custom wrapped Throwable in XMPPException with Exception.cause
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-468'>SMACK-468</a>] - Don't throw an IOException in IBBStreams when the stream got closed by the remote
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-536'>SMACK-536</a>] - JUL Loggers should become final
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-537'>SMACK-537</a>] - Move XMPP Ping code to smackx, add keep-alive functionality to PingManager
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-545'>SMACK-545</a>] - Change API to the style mentioned in Smack's Code Guidelines
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-547'>SMACK-547</a>] - Consistent behavior for "from" attribute on outgoing stanzas
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-556'>SMACK-556</a>] - Make ConnectionConfigration getters public
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-557'>SMACK-557</a>] - Provide a MultiUserChat method to create *or* join a room
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-568'>SMACK-568</a>] - Don't exclude groupchat messages without body element in MultiUserChat MessageListeners
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-53'>SMACK-53</a>] - Add support for XEP-0092: Software Version
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-71'>SMACK-71</a>] - Create new FromFilter that checks for exact matching
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-187'>SMACK-187</a>] - Add HTTP Binding support (BOSH / XEP-0124)
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-265'>SMACK-265</a>] - Move to a newer build process with artifacts published to maven central repo
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-544'>SMACK-544</a>] - Add support for XEP-0079: Advanced Message Processing
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-552'>SMACK-552</a>] - Add support for "HTTP over XMPP transport" aka. XEP-0332
</li>
</ul>
<h2> Task
</h2>
<ul>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.
</li>
<li>[<ahref='https://igniterealtime.org/issues/browse/SMACK-432'>SMACK-432</a>] - Code cleanup of deprecated methods
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-442'>SMACK-442</a>] - Manager's should also handle connectionClosedOnError()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-443'>SMACK-443</a>] - ReconnectionSuccessful listeners are invoked twice on reconnection if connect() failed before</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-452'>SMACK-452</a>] - PacketParserUtils.parseStreamError() is not aware of optional text element and therefore failes to parse stream error's correctly. Prevents ReconnectionManager from reconnecting.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-458'>SMACK-458</a>] - Smack's Managers should not remove itself when the connection is closed or should re-add themselfs if the connection get reconnected</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-462'>SMACK-462</a>] - Prevent duplicate manager instances by using the manager's constructor in the ConnectionCreationListener's connectionCreated</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-524'>SMACK-524</a>] - Use correct block-size definition for IBB transfers</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-525'>SMACK-525</a>] - NPE in XMPPConnection.notifyConnectionError</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-529'>SMACK-529</a>] - Add support for XEP-0280 "Message Carbons"</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-530'>SMACK-530</a>] - DNSUtilTest requires an internet connection to work, it should be moved to integration tests.</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-286'>SMACK-286</a>] - Need to change ProviderManager to support loading smack.providers from alternative locations</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-387'>SMACK-387</a>] - Allow configuration of ChatManager to be able to allow message handling to be customized.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-403'>SMACK-403</a>] - Add support for XEP-0297 "Stanza Forwarding"</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-434'>SMACK-434</a>] - Create a project to contain non production ready implementations of specifications</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-381'>SMACK-381</a>] - Separate the configuration for smack extension related classes from the smack jar.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-444'>SMACK-444</a>] - Allow 'null' for TruststorePath and TruststorePassword in ServerTrustManager</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-456'>SMACK-456</a>] - Add the causing exception to the XMPPExceptions thrown in XMPPConnection</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-457'>SMACK-457</a>] - Remove unnecessary printStackTrace() in XMPPConnection</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-460'>SMACK-460</a>] - ServiceDiscoveryManager should not use the constructor in connectionCreated()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-461'>SMACK-461</a>] - Remove incorrect deprecated marker for DiscoverInfo.Identity.setType()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-464'>SMACK-464</a>] - Make it clear that PacketListener's added with XMPPConnection.addPacketListener() are only for received packets</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-534'>SMACK-534</a>] - Convert all System.out and printStackTrace calls to use Java util logging.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-339'>SMACK-339</a>] - Allow ConnectionListeners to be added before XMPPConnection is connected. Currently throws exception</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-373'>SMACK-373</a>] - Don't remove listeners after a disconnect() , keep state of XMPPConnection between disconnect() and connect()/login()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-434'>SMACK-434</a>] - Create a project to contain non production ready implementations of specifications</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-526'>SMACK-526</a>] - Deprecate all PEP related classes.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-428'>SMACK-428</a>] - RosterEntry overrides equals, but not hashcode.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-438'>SMACK-438</a>] - Possible NPE in MultiUserChat.InvitationsMonitor.getInvitationsMonitor()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-441'>SMACK-441</a>] - Memory leak in KeepAliveManager</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-447'>SMACK-447</a>] - Compression is not enabled for Java7ZlibInputOutputStream</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-448'>SMACK-448</a>] - Java7ZlibInputOutputStream does not work. Deflater.DEFAULT_STRATEGY is used as compression level when it should use Deflater.DEFAULT_COMPRESSION</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-450'>SMACK-450</a>] - VCard.load() throws null pointer exception if there is no VCard for the user</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-455'>SMACK-455</a>] - Multiple items doesn`t not parse correctly in a pubsub message</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-425'>SMACK-425</a>] - Collect (parser) Exceptions and unparseable stanzas. Provide a callback method so that the user is notified about them if he wants to</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-369'>SMACK-369</a>] - Exceptions during login should get thrown back up to the caller.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-439'>SMACK-439</a>] - Improve documentation for MultiUserChat.InvitationsListener</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-451'>SMACK-451</a>] - PingManager entry in META-INF/smack.providers is within Ad-Hoc Command section</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-431'>SMACK-431</a>] - Enable Entity Caps as default for new connections and write extensions documentation html page</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-405'>SMACK-405</a>] - Cleanup of redundant code in XMPPConnection.shutdown()</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-344'>SMACK-344</a>] - Bug in SASL authentication mechanism when SRV records are being used.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-352'>SMACK-352</a>] - Update the licensing headers in various files.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-355'>SMACK-355</a>] - IO Error if smack cant use port for local proxy</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-375'>SMACK-375</a>] - Node strings in the discovery info packets are not escaped as in the other packets</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-382'>SMACK-382</a>] - Prevent memory leak in AdHocCommandManager</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-384'>SMACK-384</a>] - Endless waiting for connection to be established</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-390'>SMACK-390</a>] - Smack login will fail if a bad delay packet is received</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-392'>SMACK-392</a>] - In ant build, compile-test target doesn't work.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-394'>SMACK-394</a>] - Erroneous cast in IBBInputStream's read() method</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-395'>SMACK-395</a>] - Socks5BytestreamManager's establishConnection() should still try to use the local streamhost proxy if the server doesn't provide one</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-404'>SMACK-404</a>] - Smack uses the wrong method to decode Base64 Strings</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-413'>SMACK-413</a>] - VCardProvider incorrectly parses binary value of avatars</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-415'>SMACK-415</a>] - ItemProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-417'>SMACK-417</a>] - If both PacketReader and PacketWriter fail at the same time, connectionClosedonError() is called two times</li>
</ul>
<h2>New Features</h2>
<ul>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-331'>SMACK-331</a>] - Add support for XEP-0184: Message Delivery Receipts</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-345'>SMACK-345</a>] - Inproved detection of last activity</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-361'>SMACK-361</a>] - Add support for XEP-0115 Entity Capabilities</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-376'>SMACK-376</a>] - Setting a custom trust manager to control certificates from outside</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-341'>SMACK-341</a>] - Update the PacketCollector and ConnectionDetachedPacketCollector to use the java concurrent classes.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-358'>SMACK-358</a>] - Support additional properties for account creation in test cases.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-377'>SMACK-377</a>] - avoid unnecessary DNS requests in XMPPconnection</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-379'>SMACK-379</a>] - Sessions were removed from the specification but Smack still uses them. Should be updated to reflect the spec changes.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-385'>SMACK-385</a>] - Reusing KeyStore in order to reduce memory usage</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-389'>SMACK-389</a>] - Add java.util.zip.Deflater(In|Out)putStream as Java7 API native alternative to JZlib </li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-391'>SMACK-391</a>] - Improve date parsing in StringUtils and make DelayInformationProvider use StringUtils for date parsing.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-412'>SMACK-412</a>] - Replace the whitespace ping with a XEP-0199 ping</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-419'>SMACK-419</a>] - PacketWriter: Only flush the BufferedWriter if the packet queue is empty</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-423'>SMACK-423</a>] - Investigate whether unhandled packets should still parse the child xml into a string as content</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-430'>SMACK-430</a>] - Throw an exception if FileTransferManager.createOutgoingFileTransfer() was used with a bare JID</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-349'>SMACK-349</a>] - Smack's IBB sends too much data in a packet</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-350'>SMACK-350</a>] - Bytestream is not working in Spark 2.6.3 from XP to W7</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-353'>SMACK-353</a>] - Thread leak in the FaultTolerantNegotiator</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-362'>SMACK-362</a>] - smack throw NoSuchElementException if the muc#roominfo_subject has no values</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-129'>SMACK-129</a>] - MultiUserChat will Store Messages in its PacketCollector irregardless of whether or not they are being read</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-230'>SMACK-230</a>] - Disconnect Can Cause Null Pointer Exception</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-273'>SMACK-273</a>] - Bug in RoomListenerMultiplexor.java</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-329'>SMACK-329</a>] - XHTMLText uses improper format for br tag</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-338'>SMACK-338</a>] - IBB filetransfer doesn't work as expected</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-324'>SMACK-324</a>] - Investigate SASL issue with jabberd2 servers</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-272'>SMACK-272</a>] - Add support for pubsub (XEP-0060)</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-296'>SMACK-296</a>] - Add support for XEP-0224: Attention</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-319'>SMACK-319</a>] - Add common interfaces for SOCKS5 Bytestreams and In-Band Bytestreams</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-285'>SMACK-285</a>] - Add support for Nicks</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-289'>SMACK-289</a>] - There is no way of retrieving items from a pubsub node when the user has multiple subscriptions.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-294'>SMACK-294</a>] - Handle empty roster groups and no goups in the same way</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-295'>SMACK-295</a>] - Fire reconnectionSuccessful event when session is established</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-297'>SMACK-297</a>] - add configuration for local Socks5 proxy</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-298'>SMACK-298</a>] - Respond to all incoming Socks5 bytestream requests</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-299'>SMACK-299</a>] - Improve accepting of Socks5 bytestream requests</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-300'>SMACK-300</a>] - improve local Socks5 proxy implemetation</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-301'>SMACK-301</a>] - support for bytestream packets to query Socks5 proxy for network address</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-302'>SMACK-302</a>] - Improve establishing of Socks5 bytestreams</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-303'>SMACK-303</a>] - integrate of the extracted Socks5 bytestream API in file transfer API</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-304'>SMACK-304</a>] - Extend the IQ API to create empty IQ results and IQ error response packets</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-307'>SMACK-307</a>] - Improve Message Parser Robustness and Message Body I18N</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-271'>SMACK-271</a>] - Deadlock in XMPPConnection while login and parsing stream features</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-275'>SMACK-275</a>] - Patch: Fix for broken SASL DIGEST-MD5 implementation</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-280'>SMACK-280</a>] - The authentification should use the XMPPConnection#sendPacket method and work transparent with packets and packet listeners.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-288'>SMACK-288</a>] - The parsing of the result for a LeafNode.getItems() call is incorrect. It creates a DefaultPacketExtension instead of an Item for every other item in the result.</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-290'>SMACK-290</a>] - Deadlock while getting Roster before it's initialized</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-291'>SMACK-291</a>] - RosterGroup modifications should depend on roster push</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-293'>SMACK-293</a>] - Support optional roster subscription attribute</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-305'>SMACK-305</a>] - RosterEntry#getGroups causing a roster reload</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-308'>SMACK-308</a>] - Multiple errors in pubsub GetItemsRequest</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-312'>SMACK-312</a>] - Only fire RosterListener#entriesUpdated for RosterEntries that changed</li>
<li>[<ahref='http://issues.igniterealtime.org/browse/SMACK-327'>SMACK-327</a>] - getFeatures() method on DiscoverInfo is improperly set to be package protected instead of public</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-142'>SMACK-142</a>] - Added support for Kerberos/NTLM. <b>(6 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-210'>SMACK-210</a>] - Added support for MD5 SASL. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-256'>SMACK-256</a>] - Added support for new sophisticated TLS mechanisms including SmartCard and Apple's KeychainStore.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-242'>SMACK-242</a>] - Added support for JEP-50: Ad-hoc commands.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-251'>SMACK-251</a>] - Added support for XEP-0163: Personal Eventing Protocol. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-226'>SMACK-226</a>] - XMLConnection can now be used with an http/socks proxy. <b>(2 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-254'>SMACK-254</a>] - Loading the Roster during login is now optional.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-255'>SMACK-255</a>] - Added ability to set mime type for avatar.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-235'>SMACK-235</a>] - Improved performance of Roster class.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-241'>SMACK-241</a>] - Updated Base64 implementation to match Openfire's.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-240'>SMACK-240</a>] - Updated Jingle implementation to newest version.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-246'>SMACK-246</a>] - Improve Jingle logging using commons-logging</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-244'>SMACK-244</a>] - Updated JSTUN to 0.7.2.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-259'>SMACK-259</a>] - Updated XPP library to latest version.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-231'>SMACK-231</a>] - IBB Outputstream was not being flushed before it was closed.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-236'>SMACK-236</a>] - Renamed stanza error "unexpected-condition" to "unexpected-request".</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-258'>SMACK-258</a>] - Fixed disconnection issue when parsing SASL success that contained a payload.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-175'>SMACK-175</a>] - Fixed typo in RosterPacket.ItemStatus constant.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-99'>SMACK-99</a>] - Added support for multiple message bodies and message body languages.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-218'>SMACK-218</a>] - Implemented GSSAPI for single-sign on.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-219'>SMACK-219</a>] - The getPresence method was not working correctly with offline presence.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-224'>SMACK-224</a>] - SASL authenticion was using the XMPP domain instead of the FQDN.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-212'>SMACK-212</a>] - Jingle can't establish session if only one side has a relay service</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-213'>SMACK-213</a>] - RTP Bridge Resolver get wrong localhost address in certain situations</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-214'>SMACK-214</a>] - Presences with a negative priority of -1 are not sending the priority to the server</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-74'>SMACK-74</a>] - Added support for unavailable presences with status text. <b>(4 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-191'>SMACK-191</a>] - RosterListener API improvements.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-194'>SMACK-194</a>] - Roster.getPresence(String) now considers mode after priority to determine the presence value to return.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-195'>SMACK-195</a>] - Added the ability to disconnect with a custom presence value (for offline status).</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-200'>SMACK-200</a>] - Added convenience methods to Presence class.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-31'>SMACK-31</a>] - Added support for privacy lists. <b>(4 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-94'>SMACK-94</a>] - Added support for last activity of online users. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-121'>SMACK-121</a>] - Added support for stream errors.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-136'>SMACK-136</a>] - Added support for XEP-0048: bookmark storage.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-144'>SMACK-144</a>] - Added bookmark manager for central bookmark management.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-150'>SMACK-150</a>] - Added support for handling node features in disco.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-167'>SMACK-167</a>] - Added support for XEP-0106: JID Escaping</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-171'>SMACK-171</a>] - The presence of available contacts is now changed to offline when the connection is closed.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-172'>SMACK-172</a>] - Added support for re-connection when the connection is abruptly closed.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-182'>SMACK-182</a>] - ProviderManager is now pluggable (for Eclipse ECF).</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-185'>SMACK-185</a>] - Added the workgroup API to Smack.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-206'>SMACK-206</a>] - Added the option to specify the username to use for the automated test cases.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-208'>SMACK-208</a>] - Added a max queue size for outgoing packets to prevent memory issues during extreme load.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-209'>SMACK-209</a>] - Initial Jingle support implemented.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-148'>SMACK-148</a>] - Socks 5 listening thread was not cleaning up correctly. <b>(2 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-149'>SMACK-149</a>] - Fixed possible memory leaking in PacketReader.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-151'>SMACK-151</a>] - Now use getBytes("UTF-8") instead of getBytes().</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-152'>SMACK-152</a>] - The FN field is duplicated when loading vCards from the server.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-153'>SMACK-153</a>] - Optimized performance by replacing StringBuffer with StringBuilder.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-154'>SMACK-154</a>] - Fixed roster test cases that were sometimes failing.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-155'>SMACK-155</a>] - Optimized MUC performance by reducing number of packet collectors and listeners.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-158'>SMACK-158</a>] - FileTransfer isDone() method was returning true even when the transfer was refused.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-159'>SMACK-159</a>] - Filenames were not escaped for file transfers.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-160'>SMACK-160</a>] - Now use stream:feature to discover registration support.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-162'>SMACK-162</a>] - Fixed NPE in SmackConfiguration.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-163'>SMACK-163</a>] - Fixed NPE in RoomInfo when subject was null.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-164'>SMACK-164</a>] - Contact name was not being escaped.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-165'>SMACK-165</a>] - Listeners were not being removed from PacketReader.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-166'>SMACK-166</a>] - Packet reader thread was freezing when parsing an error text with no description.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-168'>SMACK-168</a>] - Fixed possible delay in PacketReader when negotiating TLS.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-173'>SMACK-173</a>] - Renamed ConnectionEstablishedListener to ConnectionCreationListener.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-177'>SMACK-177</a>] - Removed synchronization from Roster.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-178'>SMACK-178</a>] - Added NodeInformation#getNodeIdentities() to return identities of hosted nodes</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-181'>SMACK-181</a>] - Improved parsing of certificates to get signed domains.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-203'>SMACK-203</a>] - NULL thread IDs would cause an error inside of the Chat Manager.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-188'>SMACK-188</a>] - Resources are now closed after reading the keystore.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-189'>SMACK-189</a>] - The listener was remaining blocked forever in some cases.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-190'>SMACK-190</a>] - Exceptions while notifying packet reader listeners was stopping the notification thread.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-192'>SMACK-192</a>] - Roster.getPresence(String) now forces use of the bare JID.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-193'>SMACK-193</a>] - New presence packets now default to a null presence mode.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-196'>SMACK-196</a>] - Now set closed to true at the start of the connection shutdown method and not the end.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-197'>SMACK-197</a>] - The source build was failing.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-198'>SMACK-198</a>] - File transfer streams were not being closed properly in some cases.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-199'>SMACK-199</a>] - MultiUserChat invitation listeners are no longer removed on disconnects.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-201'>SMACK-201</a>] - Roster no longer exposes that it implements ConnectionListener.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-141'>SMACK-141</a>] - Fixed SSL exception while creating new XMPPConnections. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-127'>SMACK-127</a>] - Fixed incorrect file transfer progress.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-130'>SMACK-130</a>] - Fixed VCard escaping problem that was crashing connections.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-134'>SMACK-134</a>] - VCards were not being saved when avatar was the only element.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-131'>SMACK-131</a>] - Illegal XML characters are now properly escaped in the presence status.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-133'>SMACK-133</a>] - Illegal XML characters are now properly escaped in groups names.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-132'>SMACK-132</a>] - Fixed IBB problem triggered when buffersize was increased.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-135'>SMACK-135</a>] - Moved to new Base64 implementation to fix line break issue in old implementation.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-122'>SMACK-122</a>] - Added support for JEP-96: File Transfer. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-72'>SMACK-72</a>] - Added support for JEP-47: In-Band Bytestreams. <b>(2 votes)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-122'>SMACK-122</a>] - Added support for JEP-65: SOCKS5 Bytestreams. <b>(1 vote)</b></li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-112'>SMACK-112</a>] - Added support for JEP-38 Stream Compression.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-117'>SMACK-117</a>] - Added support for JEP-33: Extended Stanza Addressing.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-27'>SMACK-27</a>] - Certification validation is now pluggable.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-118'>SMACK-118</a>] - Added methods to dynamically remove providers.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-125'>SMACK-125</a>] - Added support for deaf occupant in MUC rooms.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-110'>SMACK-110</a>] - Resource binding and session establishment are now requested only if the server offered them.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-111'>SMACK-111</a>] - Fixed concurrency issue with date formatter.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-119'>SMACK-119</a>] - Fixed AccessControlException when using vCard from an applet.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-120'>SMACK-120</a>] - Listener thread was not being shutdown properly.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-124'>SMACK-124</a>] - Parsing resource binding packets was requiring smackx.jar file to be in the classpath.</li>
<li>[<ahref='http://www.igniterealtime.org/issues/browse/SMACK-97'>SMACK-97</a>] - Fixed functional test failures in PresencePriorityTest and RosterTest.</li>