Tigase Server 7.1.0 Release

Tigase XMPP Server 7.1.0 has been released! Please review the change notes below to see what has changed since our last release.

Introducing Tigase XMPP Server 7.1.0! We have been working hard to improve and implement new features to the Tigase Seve to give you a more secure, leaner, and better working XMPP server. We have a few new features, components, and lots of fixes to share. Please note that not all issues are accessible as submitted notes may contain sensitive information. Binaries are available from the project's files section. Sources are available in our repository. Maven artifacts have been deployed to our maven repository. Test results are located on our test page.

Major Changes

Tigase has undergone a few major changes to our code and structure. To continue to use Tigase, a few changes may be needed to be made to your systems. Please see them below:

HTTP Component renamed

The HTTP component has been renamed, if you still have the old tigase.rest.RestMessageReciever in your init.properties file, please update the component name to:
tigase.http.HttpMessageReceiver

New JDK v8 required

As Oracle has dropped support for version 7 of it's Java runtime environment and developer kit, we have moved to version 8 of the JDK. Furthermore, some new features and fixes for Tigase Server now require the use of JDK v8 or later. Please upgrade your Java packages from this link.

Changes to Database Schemas

Tigase has undergone a number or database schema changes, the current versions being main database schema v7.1 and pubsub schema v3.2.0. If you are upgrading to v7.1.0 from a previous version of tigase, it is recomended you visit this section in the documentation to prepare your new installation.

Presence Plugin Split

The plugin handling all presence processing has been split from one plugin (Presence.java) into separate plugins:
  • PresenceAbstract.java handles most common presence-related methods, and is also used by the following two plugins.
  • PresenceSubscription.java to handle subscription presence processing like for roster updates.
  • PresenceState.java to handle initial presences from new logins.

New Features & Components

New HTTP API

Tigase now features an HTTP API that not only allows web client chat, but administrators can change settings, manage users, and even write and run scripts all from the comfort of a browser window. Furthermore, commands can be passed through this interface using REST to create and run custom scripts and commands. We plan on expanding on the look and feel of this interface as time goes on, but in the meantime enjoy the real-time XMPP experience now with a user-friendly GUI.

New Admin HTTP interface

Tigase now comes with its own build-in web XMPP client! It can be accessed from http://yourhost.com:8080/ui/. For more details, see the Admin UI guide.

Added support for XEP-0334

XEP-0334 is now supported. See this section for details.

Kernel Bean Configurator has been Improved

Added aliases for bean properties to allow for a 'high level' of configuration. Instead of using
component/bean-name/property=value
The following easier to use method will work
component/property=value

Support for XEP-0352

Client State Indication is now enabled by default on Tigase XMPP Servers. Details here.

One Certificate for multiple Vhosts

Tigase now allows for wildcards in setting server certificate per Vhosts. See more in this section.

Maximum users setting for MUC

Administrators can now set that maximum number of users allowed on specific MUCs. See MUC Room Configuration.

HTTP Rest API Support

Tigase now supports REST commands via HTTP, they can be sent from ad-hoc commands, a web interface, or other REST tools. See documentation for more.

Empty Nicknames

Tigase can now support users with empty nicknames. See this for details.

Offline Message Limits

Tigase now has support to enable and change Offline Message Limits as handled by AMP. Documentation here.

Offline Message Sink

A new way to store offline messages has been implemented, it may not replace standard offline messages, but can be used in other ways. Documentation here.

Adding Components to trusted list

Components can now be added to trusted list and will be shared with all clustered servers. #3244

Tigase Mailer Extension now Included

Tigase Mailer extension is now included in distributions of Tigase server. This extension enables the monitor component to deliver E-mails to and from specified e-mail addresses when monitor are triggered. For more information see monitor mailer section.

EventBus implemented

Tigase now has a simple PubSub component called EventBus to report tasks and triggers. More details are available Here.

XEP-0191 Blocking Command Support added

Blocking Command support has been added to Tigase, all functions of XEP-0191 should be implemented. See Admin Guide for details.

Stream management now has new settings available for stream timeout

Maximum stream timeout and default stream timtout times can now be set in init.properties. Details of these two settings can be found here.

JVM Default configuration updated

Default tigase.conf file has been updated with the following change in JVM options:
PRODUCTION_HEAP_SETTINGS=" -Xms5G -Xmx5G " # heap memory settings must be adjusted on per deployment-base!
JAVA_OPTIONS="${GC} ${EX} ${ENC} ${DRV} ${JMX_REMOTE_IP} -server ${PRODUCTION_HEAP_SETTINGS} -XX:MaxDirectMemorySize=128m "
As the comment says, we recommend adjusting the heap memory settings for your specific installations. #3567

Java Garbage Collection Settings have been improved

After significant testing and investigation, we have improved the Java GC settings to keep memory usage from becoming too high on systems. #3248 For more information about JVM defaults and changes to settings, see our Documentation.

New Rest API added to obtain a JID login time

GetUserInfo command has been expanded to obtain user login and logout times in addition to standard information. See this section for full details.

New init.properties properties

  • --ws-allow-unmasked-frames=false Allows for unmasked frames to be sent to Tigase server VIA Websocket and not force-close the connection when set to true. RFC 6455 specifies that all clients must mask frames that it sends to the server over Websocket connections. If unmasked frames are sent, regardless of any encryption, the server must close the connection. Some clients however, may not support masking frames, or you may wish to bypass this security measure for development purposes.
  • --vhost-disable-dns-check=true+ Disables DNS checking for vhosts when changed or edited. When new vhosts are created, Tigase will automatically check for SRV records and proper DNS settings for the new vhosts to ensure connectivity for outside users, however if these validations fail, you will be unable to save those changes. This setting allows you to bypass that checking.
  • Connection Watchdog

    A watchdog property is now available to monitor stale connections and sever them before they become a problem. More details here.

    Web Installer Setup Page now has restricted access

    The Web Installer Setup Page, available through http://yourserver.com/8080/setup/ now requires an admin level JID or a user/password combo specified in init.properties. See the Web Installer section for default settings. See Component Properties section for details on the new property.

    Offline Message Receipts Storage now Configurable

    Admins may now configure Offline Message Receipts Storage to specify filters and controls as to what they want stored in offline messages. See more details here.

    Account Registration Limits

    In order to protect Tigase servers from DOS attacks, a limit on number of account registrations per second has been implemented. See this link for configuration settings.

    Enable Silent Ignore on Packets Delivered to Unavailable Resources

    You can now have Tigase ignore packets delivered to unavailable resources to avoid having a packet bounce around and create unnecessary traffic. Learn how here.

    Cluster Connections Improved

    Cluster commands now operate at CLUSTER priority, giving the packets higher status than HIGH which otherwise has caused issues during massive disconnects. New Configuration options come with this change. The first being able to change the number of connections for CLUSTER packets using the following init.property setting:
    cl-comp/cluster-sys-connections-per-node[I]=2
    
    Also a new class which implements the a new connection selection interface, but uses the old mechanism where any connection can send any command.
    cl-comp/connection-selector=tigase.cluster.ClusterConnectionSelectorOld
    

    Cluster Connections Testing Implemented

    Watchdog has now been added to test cluster connections by default. Watchdog sends an XMPP ping to all cluster connections every 30 seconds and checks to see if a ping response has been received in the last 3 minutes. If not, the cluster connection will be dropped automatically. Global watchdog settings will not impact cluster testing feature.

    Cluster Map implemented

    Tigase can now generate cluster maps through a new API. See the development guide for a description of the API.

    New Licensing Procedures

    With the release of Tigase XMPP server v7.1.0, our licensing procedures have changed. For more information about how to obtain, retain, and install your license, please see this section.

    Message Archive expanded to include non-body elements

    Message Archive can now be configured to store messages that may not have body element, this option is explained in this section.

    New Ability to Purge Data from Unified Archive

    Data from Unified Archive or Message Archive can be automatically or manually purged depending on age or expired status. Information on configuring this is available here.

    Server Statistics Expanded

    Server Statistics for Tigase XMPP Server have been expanded, and now will print at the close of a server session, or may be obtained in the normal way. Note that some statistics have changed since previous versions, and may have different formatting. See the Statistics Description section of the Administration guide for all current server statistics.

    Force Redirection

    It's possible now to redirect connections on one port to be forced to connect to another port using the force-redirect-to setting. Details here.

    Dual IP installtions

    Tigase now has a Dual IP setup which can now use a separate internal and external IP and use a DNS resolver for the connection redirection. Setup instructions are Located here.

    Error counting

    It is now possible to conduct error counting and collect it from statistics. This feature is explained in more detail here.

    New Database Disconnections Counter

    3 new statistics were added to basic-conf to help monitor database connection stability, and how often the XMPP Server needs to reconnect to the database. The list of new statistics are listed here.

    New Known Cluster Statistic

    A new statistic has been added to cl-comp displaying the number of connected Cluster Nodes if there are more than one. Displayed as an INFO level statistic.

    New Documentation Structure

    There has been a lot of changes and fixes to our documentation over the last few months. If you have links to any of our documentation, please update them as the filenames may have changed.

    Full XML of last available presence may be saved to repository

    A more detailed last available presence can now be made from some configuration changes, along with a timestamp before the entire presence stanza is saved to the repository. More information is available here.

    Setting available to enable automatic subscriptions

    Tigase supports enabling automatic presence subscriptions and roster authorizations. For more information on these settings, check the Automatic Subscriptions section.

    Stacktrace on Shutdown

    Tigase will now dump the stacktrace upon shutdown by default. For more information, check this description.

    New logic handling re-delivery of packets

    Previously, Tigase would retry deliverying command packets that failed to send after a brief delay of 60 seconds. This new method can provide relief in sutations where command packet queues can get full. The new logic works like this: The delay for retries, after the first delay of 60 seconds will increase by a factor of 1.5, so the 2nd retry will then be 90 seconds, and then 135 and so on, until the retry limit has been reached (default is 15). Included in this is a new setting for setting the retry count, available here.

    New Program Defaults

    Tigase has improved default settings to improve performance. These include:
    • Increase the number of database connections in relation to the number of available CPUs (factor by 4 by default).
    • Plugins code has been revised.
    • Default thread pools have been increased for better performance.
    • New option added to globally increase thread pool counts sess-man/sm-threads-factor[I]=1 Setting increases thread factor by specified factor.
    • Improved JVM default settings.
    • Improved JVM Garbage Collection.

    New Minor Features & Behavior Changes

    • Old monitor component depreciated and turned off
    • JTDS MS SQL Server driver updated to v1.3.1.
    • tigase-utils and tigase-xmltools are now included in tigase-server builds
    • Tigase Kernal has been updated and improved
    • tigase.stats.CounterDataFileLogger file now includes timestamps
    • Javadoc is no longer generated by installer as files are already included in distributions
    • Node connection events to administrator have been improved and are more informative
    • ServerConnectionManager has officially been depreciated from use in s2s.
    • Logs now include information about respository reconnections.
    • WebSocket PONG frams are now supported.
    • #163 XEP-0012 User LastActivity implemented.
    • #593 XEP-0202 Entity Time has been implemented.
    • #788 End User Session from XEP-0133 Service Administration implemented.
    • #811 Plugin API extended allowing more XML parameters to be considered for processing.
    • #813 Default number of connections between cluster nodes set at 5, default number of connections for CLUSTER level traffic set to 2.
    • #1436 ClusterConnectionManager now sends ping packets every 30 seconds to check status of live cluster connections.
    • #1449 Monitoring can now be run in OSGI mode.
    • #1601 XMPPPresenceUpdateProcessorIFC interface has been removed and replaced with eventbus with dedicated threadpool.
    • #1783 Cluster node connections/reconnections has been improved. Clusters now receieve a 'isclusterready?' query before connecting to avoid synchronization issues. Furthermore, an additional property has been added to change timeout of inactive clusters. See Properties guide for more details.
    • #2426 Support for XEP-0334 has been added.
    • #2530 RosterFlat implementation now allows for a full element to be injected into presence stanzas instead of just a custom status.
    • #2561 & #85 Offline messages now consider sessions without presence & resources negative priority in delivery logic.
    • #2596 Delivery errors are no longer run through preprocessors.
    • #2823 staticStr element method now implemented.
    • #2835 Allowing of setPermissions on incoming packets before they are processed by plugins.
    • #2903 see-other-host has new option to make it configurable on a per vhost basis.
    • #3034 Improved handling of data types and primitives within Tigase.
    • #3173 Stanzas with unescaped XML special characters are now ignored instead of sending a force-close of connection to sender.
    • #3180 Protected access to JDBC repository now enabled.
    • #3230 Verification added to check against CUSTOM domain rules when submitted.
    • #3258 Retrieval of PubSub/PEP based avatars using REST API now supported. Command URLs here.
    • #3282 VCard4 support added along with VCardTemp compatibility and integration.
    • #3285 Stream Management changed to fully support XEP-0203.
    • #3330 Error for adding users already in db now returns Error 409 with User exists.
    • #3364 Clustering support has been re-factored to remove duplicate nodeConnected and nodeDisconnected methods.
    • #3463 offline-roster-last-seen feature as a part of presence probe is now disabled by default.
    • #3496 TigUserLogout has been improved to use sha1_user_id = sha1(lower(_user_id)) instead of "_user_id".
    • #3511 Stream closing mechanism in SessionManager, new STREAM_CLOSED command has been added to organize shutdown of XMPP streams.
    • #3569 Fixed error occuring when attempting to remove offline users from roster.
    • #3609 Added new configuration option for BOSH to disable hostname attribute. Details here.
    • #3670 Hardened mode now uses long DH keys (2048) by default.
    • #3849 New Roster size limit configurable setting. See info Here.
    • #3872 PostgreSQL driver updated to v9.4.
    • #3892 PEP plugin now supports processing of http://jabber.org/protocol/pubsub#owner.
    • #3908 Logs now print whether components or plugins are depreciated, and recommend configuration settings changes.
    • #3937 Windows setup given one-click solution to file initialization.
    • #3945 SSLContextContainer has been replaced with JDKv8 extension version now known as SNISSLContextContainer adding support for SNI of SSL/TLS.
    • #3948 Tigase PubSub now responds to +disco#info+ requests in line with XEP-0060 - Discover Node Metadata.
    • #3950 MongoDB driver updated to v2.14.1.
    • #3985 Improved disco#info to return extended results for MUC component as per XEP-0128 Service Discovery Extensions.
    • #3986 Added new index for tig_nodes collection in MongoDB Databases.
    • #4003 VisualVM and statistics gathering has been improved and refactored for a lower footprint, and a number of new windows and features for program monitoring.
    • #4020 SeeOtherHostSualIP implementation has been fixed to support MongoDB.
    • #4120 Duplication of messages in offline storage when +Message+ and +OfflineMessage+ processors are used has been resolved.
    • #4127 Database reconnection procedure improved, increased SchuduledExecutorService threads to 2, ClusterConnectionManager threads to 4, and added timeout parameter to timeout task.
    • #4162 xml:lang attribute is now supported in Tigase MUC component.
    • #4248 Changed ErrorCounter from XMPPProcessorIFC to XMPPPacketFilterIfc for more accurate functionality.
    • #4254 Fixed JabberIqPrivacy to properly compare JID's instead of strings, improved partial JID matching, and added tests to add non-case sensitive comparison in MA/UA.
    • #4256 Reduced Statistics memory usage by interning statistics labels and changing data types.
    • #4356 Message Archive component has been converted to kernel and beans.
    • #4352 Websocket implementation has been changed to properly parse HTTP headers with omitted spaces for HTTP 1.1 protocol.
    • #4358 Several methods have been renamed or removed to prepare for v7.2.0 Kernel setup.
    • #4385 Minor tweak to web-installer to skip unnecessary showing of blank init.properties file & enabled post-setup editing and saving.
    • #4665 Full Stacktrace will be dumped to log file by default, see this section for more details.
    • #4739 LetsEncrypt certficates are now included in dedicated keystore.
    • #4752 New methods added to Tigase: tigase.component.modules.Moduleprovider#getModules and tigase.component.modules.ModuleProvider#getModulesId allowing for hooking of component modules. Fixed issue with reconnection of cluster nodes after a network lag.

    Fixes

    • #8 XML parser no longer passes malformed XML statements to server.
    • #1396 & #663 User roster behaves correctly. Tigase now waits for user authorization before users are added to a Roster.
    • #1488 NPE in ad-hoc for managing external components fixed.
    • #1602 Minor optimization in MessageCarbons with new functions added to XMPPResourceConnection.
    • #2003 Fixed bug with C2S streams where server would not always overwrite from attribute with full JID in subcription-related presence stanzas.
    • #2118 Username modification bugfix. Tigase now returns "" for blank usernames instead of string after a username has been made blank.
    • #2859 & #2997 STARTTLS stream error on SSL sockets fixed.
    • #2860 Fixed issue with SSL socket client certificate not working.
    • #2877 Fixed issue in Message Carbons if message contains AMP payload.
    • #3034 Streamlined primitive and Object array handling.
    • #3067 Fixed Bug where if duplicate commands were sent to MS SQLServer a race condition would occur.
    • #3075 Fixed error when compiling Tigase in Red Hat Enterprise Linux v6.
    • #3080 --net-buff-high-throughput now parses integers properly. Setting no longer reverts to default when new values are set.
    • #3126 Calculation of percentage of heap memory used in Statistics now selects proper heap.
    • #3131 Fixed messages with AMP payload bound for plugins getting redirected to AMP for processing.
    • #3150 Default Log level changed for certain records. All log entries with skipping admin script now have log level FINEST instead of CONFIG
    • #3158 Fixed issue with OSGi not reporting proper version, and PubSub errors in OSGi mode.
    • #3159 User Privacy lists now activate properly and does not wait for presence stanza to filter packets.
    • #3164 Fixed NPE in StreamManagementIOProcessor when is processed after connection is closed.
    • #3166 NPE in SessionManager checking SSL null connections fixed.
    • #3181 S2S connection multiplexing now has consistent behavior.
    • #3194 Fixed issue with single long lasting HTTP connection blocking other HTTP requests. Default timeout set to 4 threads after 60 seconds.
    • #3200 Implemented a faster way to close stale connections using MS SQL server, reducing calm down time after large user disconnects.
    • #3203 Correct presence status shows for contacts if authorization was accepted while user was offline.
    • #3223 +GetUserInfo+ ad-hoc command no longer omits information about local sessions when a remote session is active.
    • #3226 Fixed NPE & argument type mismatch in Pubsub.
    • #3245 Fixed ClassCastException when Websocket is configured to use SSL.
    • #3249 JabberIQVersion plugin now returns proper client information when requested from self.
    • #3259 Websocket no longer loops when receiving stanzas between 32767 and 65535 bytes in size.
    • #3261 Fixed issue with duplicate disco#info responses.
    • #3274 NPE when removing roster nickname fixed.
    • #3307 Rosters are no longer re-saved when a user logs in and roster is read resulting in a performance boost.
    • #3328 Presence processing by PEP plugin optimized.
    • #3336 Fixed issues with reloading vhosts in trusted after configuration change.
    • #3337 tls-jdk-nss-bug-workaround-active is now disabled by default. This fix is disabled by default which may impact older OpenSSL versions that may no longer be supported. You may enable this using an init.properties setting.
    • #3341 IQ Packet processing changed for packets sent to bare JID in Cluster mode.
    • #3372 Fixed NPE when presence was re-broadcasted to users who did not exit server gracefully.
    • #3374 PubSub Schema changed to be more compatible with MS SQL.
    • #3375 Users removed VIA REST commands are now disconnected immediately.
    • #3386 Fixed AMP logic to avoid querying for (default) Privacy list if user does not exist.
    • #3389 Fixed issue of sending packets to connections that were closed, but connection write lock had not been acquired.
    • #3401 Multiple issues fixed with Tigase.IM web client.
    • #3422 UTC Timestamps now enforced inside cluster_nodes table.
    • #3440 Fixed WebSocket error 12030 showing unexpectedly.
    • #3446 Fixed Installer configuring MUC incorrectly.
    • #3449 Wrapper.conf updated with current library folder for windows Service wrapper.
    • #3453 Fixed NPE when using comparator when sorting messages.
    • #3485 Fixed JDBCMsgRepository inserting duplicate user JID into table while using AMP.
    • #3489 Various fixes to Tigase test suite. Fixed race condition from XMPPSession conflicts when new sessions and closing session events happen at the same time.
    • #3495 Fixed messages being duplicated by message carbons.
    • #3499 Various fixes to AMP component.
    • #3530 Fixed +null cert chain+ error when connecting to other servers using S2S connection with StartTLS.
    • #3550 Fixed NPE in sess-man when trying to delete all user information using Pidgin or Psi.
    • #3556 JavaDoc updated to include documentation for xmltools, tigase-extras, and tigase-util packages.
    • #3559 Fixed Web admin UI not updating Cluster node when it id disconnected.
    • #3579 Fixed NPE in SimpleParser.
    • #3580 Replaced misleading +feature not implemented+ error when SM attempts to put a packet to processor and queue is full.
    • #3598 Fixed error in removing users from blocked list.
    • #3599 Fixed FlexibleOfflineMessages not being delivered to connection due to lack of explicit connection addressing.
    • #3612 Fixed issue when processing packets sent to full JID in cluster mode when user is connected to more than one cluster node at once.
    • #3619 Fixed issue with non-presistent contacts being unable to be added to roster.
    • #3649 Changed privacy list processing to always allow communication between XMPP connections with the same BareJID.
    • #3655 Increased max loop in infinity loop detection logic to 100000 in order to aid larger transfers.
    • #3656 Add option to BOSH output command without a timer task to avoid generation of packets to closed connections.
    • #3686 XHTML-IM parser has been fixed, restoring XEP-0071 functionality.
    • #3688 Issues with Eventbus in cluster mode fixed.
    • #3689 Avoid using sender address when packets are returned from Cluster Manager using stream management.
    • #3717 Support added to store messages without <body/> element if storage method other than <body/> is used. Support also added for JAXMPP to retrieve whole element from Message Archiving instead of only <body/>.
    • #3718 Removed DISCONNECTING! debug stanza from AbstractWebSocketConnector.java that was causing NPE when user fails authentication in WebSocket.
    • #3753 Fixed NPE when using Blocking command.
    • #3775 Fixed +ThreadExceptionHandler+ error in Tigase mailer.
    • #3781 Fixed issue with sending C2S message "The user connection is no longer active".
    • #3800 Changed Jenkins to always pull latest binaries from repositories. Windows wrapper changed to use wildcards to load /jars folder.
    • #3848 Changes made to JDBCMessageArchiveRepository to fix potential MySQL deadlocks when adding entries to repository.
    • #3902 Fixed issue where wss:// connections were closed after 3 minutes of inactivity.
    • #3910 Fixed NPE in SessionManager when session was closed during execution of everyMinute method.
    • #3911 Fixed load distribution error between threads that could cause high CPU usage.
    • #3931 Fixed error caused by AMP running in clustered installations.
    • #3966 Changed type of msg & body columns in muc_history table for SQLServer to prevent loss of special characters.
    • #3973 Adjusted throttling settings for S2S and cluster connections.
    • #3977 Fixed MUC History to reflect messages from JID of room and not JID of original sender.
    • #3984 Fixed distinct usage on large data which causes errors on lookup of PubSub nodes in MongoDB.
    • #3970 Fixed duplication of messages with AMP payload in cluster mode.
    • #4044 Fixed various web installer issues.
    • #4051 Fixed NPE in java when processing message with no body.
    • #4052 Fixed issue with ClusterRepoItem not properly resulting in tigase.db.comp.RepositoryChangeListenerIfc.itemUpdated(Item) being executed.
    • #4056 Items removed from cluster repository are not removed from memory correctly.
    • #4071 Updated groovy script to properly add owner to node creation VIA ad-hoc command.
    • #4142 Updated wrapper.conf file to match tigase.conf default settings.
    • #4183 Fixed issue where objects monitored by Ghostbuster.java in MUC could not be removed by it.
    • #4185 Fixed issue with PacketCounter that caused duplicate messages to be sent on stream resumption.
    • #4188 Standardized timestamp between AbstractMessageArchiveRepository and TimestampHelper.
    • #4262 Fixed messages getting lost when StreamResumption is used when a disconnected user reconnects to the server. This issue is also fixed on servers using ACS component.
    • #4298 ACS
    • Fixed messages getting dropped when sent to users offline or on unstable connections.
    • #4365 Fixed direct presence not working with non-roster elements using barejid.
    • #4524 Fixed NPE during startup causd by Cluster Connection Manager.
    • #4672 Fixed UnsupportedOperationException error occuring during configuration change of WebSocketClientConnectionClustered.
    • #4747 converter.groovy script is now depcreciated.
    • #4760 Fixed NPE upon anonymous user conection, changed log notification to reduce clutter.
    • #4762 Fixed delayed processing of WebSocket data frame if frame is both TCP and ping frame.
    • #4786 Changed timeout for cluster repository connection during acceptence of incoming cluster connection from 15ms to 15s.
    • #4787 Fixed possible NPE in ClientStateIndication when GETFEATURES command is executed before session is confirmed not null.
    • #4793 Fixed NPE in statistics occuring when certain values are null.
    • #4812 Fixed possible NPE in ClientStateIndication and mobile optimizations if packets are processed before resource binding is finished.
    • #4818 Fixed StampComparitor not comparing packets stamped with XEP-0203 Delayed Delivery instructions.
    • #4820 Now fixed issue where it was impossible to remove user from all groups.
    • Patch added to fix ConcurrentModificationException in BlockingCommand plugin.
    • Fixed negation in SASL mechanism selector.
    • Fixed checking for user session without localpart in to address.
    • Fixed resourceDefPrefix from accumulating resource names when components are added or removed in web console.
    • Fixed [F] property not converting to float.
    • Distributed EventBus improved to allow POJO based events to be fired locally.
    • Added missing classes to IzPack installer.
    • Tigase.xml removed from documentation and default tigase.conf file.
    • Logs function added to eventbus publisher operations.
    • Fixed responding to same hostname as sender as "to" in stream-error stanza.
    • Fixed issue where attempts to delete empty MUC room would create and then destroy room.
    • Added startup information to log to indicate when server is ready.
    • Fixed a divide by zero error in Java Garbage Collection.
    • Fixed -see-other-host causing 'Foreign key constraint is incorrectly formed' error while using SeeOtherHostDB.
    • Fixed NPE occuring when attempting to load from repository that has not been initilized yet.
    • Fixed NPE in CounterDataFileLogger by implementing Stringbuilder to create statistics.
    • Certificate directories from old or improper installations will now be ignored if empty.

    Get in touch

    We provide software products, consulting and custom development services

    Tigase, Inc.
    100 Pine Street, Suite 1250
    San Francisco, CA 94111, USA
    Phone: (415) 315 9771

    Follow us on:

    Twitter

    • Tigase Messenger for iOS has been released! Our Thanks to all the Beta Testers (drawing soon). Check it out here https://t.co/h91jH8cYSE 3 weeks 2 days ago
    • Try a new twist on XMPP: Stateless XMPP https://t.co/cybgEfdSMm 1 month 22 hours ago
    Back to Top