Build: #3219 was successful Scheduled with changes by Guus der Kinderen and copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Code commits
Openfire (master)
-
Guus der Kinderen 3079adc86df1a3ba20fb615722b65c23d56afdd9
OF-3136: Remove deprecated code
This removes code that has been marked for removal in version 5.1.0 of Openfire, in addition to earlier removals done in commit a8ee1b6dc9045fe6f0b64bc893335eb0f07e1a9b
IQMuclumbusSearchHandler was unmarked for immediate removal, as its only known user (search.jabber.network) is still using it.- i18n/src/main/resources/openfire_i18n.properties (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- i18n/src/main/resources/openfire_i18n_nl.properties (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/main/java/org/jivesoftware/admin/AuthCheckFilter.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/IQMuclumbusSearchHandler.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalClientSession.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/main/java/org/jivesoftware/openfire/user/AuthorizationBasedUserProviderMapper.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/main/java/org/jivesoftware/openfire/user/PropertyBasedUserProviderMapper.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/main/java/org/jivesoftware/openfire/user/UserMultiProvider.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/main/webapp/system-admin-console-access.jsp (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/test/java/org/jivesoftware/admin/AuthCheckFilterTest.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/test/java/org/jivesoftware/openfire/muc/HistoryStrategyTest.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
- xmppserver/src/test/java/org/jivesoftware/openfire/session/LocalClientSessionTest.java (version 3079adc86df1a3ba20fb615722b65c23d56afdd9)
-
Guus der Kinderen 9050981d2e22e42bfb541d472a6a352135c198c7
OF-3119: Use longer resolution delay on macOS to reduce test flakiness
- xmppserver/src/test/java/org/jivesoftware/openfire/net/HappyEyeballsResolverTest.java (version 9050981d2e22e42bfb541d472a6a352135c198c7)
-
Guus der Kinderen 64729262bea9915289936331ee507d86a78dc479
ci: replace sleep-based synchronization with deterministic wait in ArchiverTest
testArchiverInDistinctBatchesWhenOutsideGrace used Thread.sleep() to ensure the archiver had flushed the first item before submitting the second. This relied on the OS thread scheduler waking the archiver thread within the sleep window, which holds on Linux but not on macOS due to differences in thread scheduling behavior between the two platforms.
Replace the sleep with the existing waitUntilArchivingIsDone() helper, which polls until the first item is confirmed stored before archiving the second. This makes the test deterministic regardless of platform or scheduler behavior.- xmppserver/src/test/java/org/jivesoftware/openfire/archive/ArchiverTest.java (version 64729262bea9915289936331ee507d86a78dc479)
-
Guus der Kinderen def1742bb0cb523366b671a0d2a82a50661f13b0
OF-3210: Removed unused JNDI property
This wasn't used in modern versions of Java, and got removed in Java 25.- xmppserver/src/main/java/org/jivesoftware/database/JNDIDataSourceProvider.java (version def1742bb0cb523366b671a0d2a82a50661f13b0)
-
Guus der Kinderen d339a41a93b5b0dcc8ba3248f9f83bcbc6c3d885
CI: Add Java 25
Java 25 is a long-term support release (September 2025). This makes it likely that users will use it to run Openfire. It should therefor be added to our integration test matrix.- .github/workflows/continuous-integration-workflow.yml (version d339a41a93b5b0dcc8ba3248f9f83bcbc6c3d885)
-
copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> ddfc5252b879c76e93c0ed5684e64221cdf47587
fix(pubsub): always update lastPublished when same item is overwritten (XEP-0060 §7.1.2)
Root cause of PubSubExtIntegrationTest failure:
setLastPublishedItem() only updated the in-memory lastPublished cache
when the new item's creation date was *strictly after* the existing one.
When a publisher re-publishes an item with the same ItemID in rapid
succession (within the same millisecond, common in integration tests),
both items share the same CacheFactory.getClusterTime() value.
The after() check returns false, so lastPublished is NOT updated.
The persistence layer correctly performs an SQL UPDATE, but
getPublishedItem() short-circuits by returning the stale in-memory
lastPublished instead of going to the database, causing the test
assertion ("item equals first, not second") to fail.
Fix: add a third update condition — always update when the incoming
item has the same unique identifier (same node + same ItemID) as the
current lastPublished. Overwrites are always reflected in the cache
regardless of timestamp resolution.
Adds 3 regression tests in LeafNodeTest covering same-ID/same-time
overwrite, same-time different-ID non-overwrite, and newer-time
different-ID update.
Co-authored-by: akrherz <210858+akrherz@users.noreply.github.com>- xmppserver/src/main/java/org/jivesoftware/openfire/pubsub/LeafNode.java (version ddfc5252b879c76e93c0ed5684e64221cdf47587)
- xmppserver/src/test/java/org/jivesoftware/openfire/pubsub/LeafNodeTest.java (version ddfc5252b879c76e93c0ed5684e64221cdf47587)