Build: #2964 was successful
Job: Build was successful
Code commits
Openfire (master)
-
Guus der Kinderen 0d2a79c743435689470d830f24302468ac89b87a
OF-3212: Add defensive (re)create of PEP root collection node if it's missing
Openfire expects each PEP service to have a root collection node. However, there are various code paths where a service can be created without one.
In this commit, the initialization of the service has been made more robust to always (re)create a root collection node in case one is missing.- xmppserver/src/main/java/org/jivesoftware/openfire/pep/PEPService.java (version 0d2a79c743435689470d830f24302468ac89b87a)
-
Guus der Kinderen f9f3526b525e3aa3a3aac0df87d89585531aff6c
OF-3123: Initialize PEPService before adding to cache
Reorder PEPService initialization to occur before the service is placed in the cache. Previously, services were cached before initialize() completed, creating a race window where other threads could access uninitialized services. Now initialization happens in both getPEPService() and create() methods before caching, ensuring all cached services are fully initialized. This is still protected by existing per-JID locking and has zero performance impact.- xmppserver/src/main/java/org/jivesoftware/openfire/pep/PEPServiceManager.java (version f9f3526b525e3aa3a3aac0df87d89585531aff6c)
-
Guus der Kinderen 89cb1ecbcc3d2c95fbddc7d657564dd48410ca9f
OF-3123: Save root node of new PEPService afer adding to cache
The root node of a (new) PEPService instance typically must be persisted in a database. Prior to this change, this happened in-line to the `PEPService#initialize()` invocation.
Saving to the database requires the PEPService to be registered with the cache of PEPServices. The prior commit's purpose was to ensure that an uninitialized service was _not_ registered with that cache, breaking the persistence of the root node.
In this commit, the root node is no longer stored in the database in the `initialize` method. Instead, it is persisted only after the new service is stored in the cache.- xmppserver/src/main/java/org/jivesoftware/openfire/pep/PEPService.java (version 89cb1ecbcc3d2c95fbddc7d657564dd48410ca9f)
- xmppserver/src/main/java/org/jivesoftware/openfire/pep/PEPServiceManager.java (version 89cb1ecbcc3d2c95fbddc7d657564dd48410ca9f)