Verifies the integrety of the projects, as builds are executed immediately after a code change was detected. This plan provides no artifiacts (use a nightly build instead).

Build: #2920 was successful

Job: Build was successful

Stages & jobs

  1. Default Stage

  2. Continuous Integration

Code commits

Openfire (master)

  • Guus der Kinderen

    Guus der Kinderen 3c55066eb3b9b57f9709f1f21fc533817045a06b

    OF-3164: Avoid user lookup for JIDs without node to reduce exception overhead
    Prevent execution of user lookup logic when the provided JID has no node. JIDs without a node part cannot represent a local user, yet currently flow through UserManager.isRegisteredUser(), which relies on exception-based control flow when the user does not exist.

    Thread dumps show significant CPU time spent constructing UserNotFoundException instances (Throwable.fillInStackTrace) on this hot path.

    This change short-circuits the lookup for node-less JIDs, avoiding the exception-heavy path and reducing unnecessary CPU usage under load.

    Note: This is a partial workaround. A full fix should refactor user existence checks to avoid exceptions for normal control flow.

    Additionally, more unit tests were added.

    • xmppserver/src/main/java/org/jivesoftware/openfire/user/UserManager.java (version 3c55066eb3b9b57f9709f1f21fc533817045a06b)
    • xmppserver/src/test/java/org/jivesoftware/openfire/user/UserManagerTest.java (version 3c55066eb3b9b57f9709f1f21fc533817045a06b)