Stages & jobs

  1. Build and Package

  2. Copy to Website

Code commits

Openfire (master)

  • Guus der Kinderen

    Guus der Kinderen 4acc9b381307eba567c2a35db59848b4559a4edd

    OF-2424: Assert when LocalSession is null
    Under certain circumstances (notably, when a session is detached), a session's connection can be null.

    This commit adds assertions to identify the null-ability of a sessin's connection, and ensures that a null connection is not attempted to be used in a context where it is assumed to be non-null.

    • xmppserver/src/main/java/org/jivesoftware/openfire/LocalSessionManager.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/net/ComponentStanzaHandler.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/net/SASLAuthentication.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/sasl/AnonymousSaslServer.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/sasl/ExternalClientSaslServer.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalClientSession.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalComponentSession.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalConnectionMultiplexerSession.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalServerSession.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalSession.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/spi/LocalRoutingTable.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
    • xmppserver/src/main/java/org/jivesoftware/openfire/streammanagement/StreamManager.java (version 4acc9b381307eba567c2a35db59848b4559a4edd)
  • Guus der Kinderen

    Guus der Kinderen 992a5d17f127a3db480ef1ce83f3131efa069a60

    OF-2456: properly propagate a nickname change over the cluster.

    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/cluster/OccupantUpdatedTask.java (version 992a5d17f127a3db480ef1ce83f3131efa069a60)
  • Guus der Kinderen

    Guus der Kinderen 4a5f96f1d6626638ced429455113885dc937096d

    OF-2458: Guard access to field to prevent ConcurrentModificationException
    The internal field 'presence' should not be modified when read, as that has been observed to lead to ConcurrentModificationException being thrown.

    This commit adds a lock to all access to the 'presence' and related 'extendedInformation' fields, to prevent this from happening.

    Additionaly, the instance returned by the `getPresence()` method has been replaced with a defensive copy (much of the invoking code did immediately create such a copy after acquiring the instance, which now has been removed).

    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/MUCRole.java (version 4a5f96f1d6626638ced429455113885dc937096d)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/MUCRoom.java (version 4a5f96f1d6626638ced429455113885dc937096d)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/FMUCHandler.java (version 4a5f96f1d6626638ced429455113885dc937096d)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/MultiUserChatServiceImpl.java (version 4a5f96f1d6626638ced429455113885dc937096d)
  • Guus der Kinderen

    Guus der Kinderen a9d17739849cab460c8b424f88273bc79cac593d

    Minor non-functional changes (mostly spelling)

    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/MUCRole.java (version a9d17739849cab460c8b424f88273bc79cac593d)
    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/MUCRoom.java (version a9d17739849cab460c8b424f88273bc79cac593d)
  • Guus der Kinderen

    Guus der Kinderen 9c22fcafd25714a97518f1e0ee372eeb42337119

    Removed two redundant null-checks spotted by LGTM.

    • xmppserver/src/main/java/org/jivesoftware/openfire/muc/MUCRoom.java (version 9c22fcafd25714a97518f1e0ee372eeb42337119)
  • Guus der Kinderen

    Guus der Kinderen 8abc615cadeb2bb3c1a2cce2d007c7b9c3a3c4e1

    OF-2444: Improve comment based on review feedback.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 8abc615cadeb2bb3c1a2cce2d007c7b9c3a3c4e1)
  • Guus der Kinderen

    Guus der Kinderen bc2c30b04ee94a4c62fb12e9c49ba0a357286013

    OF-2444: Prefer Optional over null results
    As suggested by Greg during review: why not return an Optional instead of a null value? The Optional is slightly more descriptive.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version bc2c30b04ee94a4c62fb12e9c49ba0a357286013)
  • Guus der Kinderen

    Guus der Kinderen b7d2b8eca992d1d497534baf19a9479ceae33d7d

    HttpSession: Grammar and spelling improvements

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version b7d2b8eca992d1d497534baf19a9479ceae33d7d)
  • Guus der Kinderen

    Guus der Kinderen 4c9dd1c7024ed224e3c22cc3b8df6f182b74f028

    OF-2444: Refactor HttpSession#connectionQueue to strictly contain usable connections
    Prior to this change, org.jivesoftware.openfire.http.HttpSession#connectionQueue could contain connections that were already consumed.

    This commit refactors this field from a list to a queue, in which only 'usable' connections are kept.

    The original thought behind this change was to switch to a thread-safe data type for this field, which would reduce the need for explicit locking. This is not achieved by this commit.

    Even though the original goal of the change is not achieved, the change does reduce a bit of complexity, which hopefully leads to a simpler locking strategy down the road.

    While evaluating usage, various issues in the code have been identified. This commit does not fix them directly. Instead, a TODO or FIXME comment was added and a JIRA ticked was raised for each of these.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 4c9dd1c7024ed224e3c22cc3b8df6f182b74f028)
  • Guus der Kinderen

    Guus der Kinderen 7f249b6126973670dd2ac995af25911f7a5205ee

    OF-2444: Asynchronously deliver outbound data over BOSH
    When sending stanzas back to the client, this is now done in an asynchronous manner, outside of a lock held on the connectionQueue. The delivery of inbound data already occurred in an asynchronous manner. The threadpool that was used for that is now being used for both.

    To achieve this, the processing of (outbound) stanzas has been decoupled from the management of connectionQueue (adding/removing connections), allowing it to happen outside of the guard of a lock.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 7f249b6126973670dd2ac995af25911f7a5205ee)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 7f249b6126973670dd2ac995af25911f7a5205ee)
  • Guus der Kinderen

    Guus der Kinderen 63158c5c3bd5d8bd7a7df6a93b598f36e84eef32

    OF-2444: Access to HttpSession#pendingElements no longer needs to be guarded
    By removing the need for holding a particular lock when accessing org.jivesoftware.openfire.http.HttpSession#pendingElements, the duration of locks that are obtained and held can be reduced.

    Lower chances of lock contention will improve performance. Reduced lock usage will reduce to chance of deadlocks.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 63158c5c3bd5d8bd7a7df6a93b598f36e84eef32)
  • Guus der Kinderen

    Guus der Kinderen 973ba783ed15328a3996b8c5d8a2057b1638d50f

    OF-2444: Use dedicated lock for org.jivesoftware.openfire.http.HttpSession#sentElements
    Access to org.jivesoftware.openfire.http.HttpSession#sentElements was previously guarded by a lock that was re-used for other purposes.

    By replacing the lock for org.jivesoftware.openfire.http.HttpSession#sentElements with one that is dedicted the access of that field, the probability of resource contention related to the lock is reduced.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 973ba783ed15328a3996b8c5d8a2057b1638d50f)
  • Guus der Kinderen

    Guus der Kinderen ffa5463d752542fb608c3b3d6d37d5a9780c107c

    Replace 'size() == 0' with 'isEmpty()'
    For some Collections, a call to size() is not a constant-time operation. As a matter of principle, isEmpty() should be prefered over checking for a size that equals zero.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version ffa5463d752542fb608c3b3d6d37d5a9780c107c)
  • dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> 2f1035a9b37de60b4a8679ca18cf781b7d96029b

    build(deps): bump mysql-connector-java in /build/ci/updater
    Bumps [mysql-connector-java](https://github.com/mysql/mysql-connector-j) from 8.0.27 to 8.0.28.
    - [Release notes](https://github.com/mysql/mysql-connector-j/releases)
    - [Changelog](https://github.com/mysql/mysql-connector-j/blob/release/8.0/CHANGES)
    - [Commits](https://github.com/mysql/mysql-connector-j/compare/8.0.27...8.0.28)

    ---
    updated-dependencies:
    - dependency-name: mysql:mysql-connector-java
      dependency-type: direct:production
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

    • build/ci/updater/pom.xml (version 2f1035a9b37de60b4a8679ca18cf781b7d96029b)