Code commits
Openfire (master)
-
akrherz <akrherz@iastate.edu> 8446a9fd7d89d4d19ecc70fdc38c12305666f9a1
publish maven artifacts on master or release branches X.Y
- .github/workflows/continuous-integration-workflow.yml (version 8446a9fd7d89d4d19ecc70fdc38c12305666f9a1)
-
daryl herzmann <akrherz@iastate.edu> 66f8e3800a82b5ee6dd2d1a4aa865cf3b6c7728e
Merge pull request #1836 from guusdk/OF-2252_BOSH-fix-timeout-log-level
OF-2252: Reduce log level of BOSH timeouts -
Guus der Kinderen 4bd3389a6006b42db92d10fe134cd8f4e3e443a7
OF-2252: Reduce log level of BOSH timeouts
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 4bd3389a6006b42db92d10fe134cd8f4e3e443a7)
-
daryl herzmann <akrherz@iastate.edu> cf67cfce51f2719c56edac4f44b0b30cd74c4c19
Merge pull request #1833 from guusdk/OF-2245_HTTP-session-close
OF-2245, OF-2246, OF-2247, OF-2248, OF-2249, OF-2250 and OF-2251: Various BOSH + backup packet delivery improvements -
Guus der Kinderen 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1
OF-2251: Make BOSH threadpools more configurable
This adds properties for minimum amount of, as well as the TTL for surplus threads in the threadpool used for BOSH network IO.
An additional property is added for the minumum amount of threads in the pool used for BOSH packet processing (which up to now was hard-coded to use 25% of the max).
When switching from JiveGlobals to SystemProperty, there's no need to explicitly call 'migrateProperty' anymore.- i18n/src/main/resources/openfire_i18n.properties (version 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindManager.java (version 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1)
-
Guus der Kinderen b535e93d3de51350758223c5816d881e7cbf0f22
OF-2247: Improve type-safety of BOSH implementation & improve configurability.
By using classes from the `java.time` package instead of `long` values, better type-safety is achieved.
Various getters that directly return a property value have been replaced with a `SystemProperty`, which does a better job of documenting their use in the admin console.- i18n/src/main/resources/openfire_i18n.properties (version b535e93d3de51350758223c5816d881e7cbf0f22)
- xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindBody.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpConnection.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/ResourceServlet.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
-
Guus der Kinderen 0b1b80829a3d2944d3222e33c492d111823cd173
Fixes for OF-2246, OF-2249 and OF-2250
This commit started off as an implementation of a new feature that allows backup delivery to be disabled (OF-2246). While implementing that, two bugs were discovered with how backup delivery is applied for BOSH and multiplexers (OF-2249, OF-2250) for which the fix has been included in this commit.
A slight refactoring of the BOSH connection implementation was added, to bring those more in-line with Connection implementations of other connection types.- xmppserver/src/main/java/org/jivesoftware/openfire/Connection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/multiplex/MultiplexerPacketDeliverer.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/net/SocketConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/net/VirtualConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/nio/ClientConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/nio/ComponentConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/nio/MultiplexerConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/nio/NIOConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/nio/ServerConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalConnectionMultiplexerSession.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/websocket/WebSocketConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
- xmppserver/src/main/java/org/jivesoftware/openfire/websocket/XmppWebSocket.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
-
Guus der Kinderen 6faecdc16f9c6c71460993937669b8fda150dac3
OF-2247: BOSH session config should not be mutable
Attributes of a BOSH session that cannot change after the session was created should not be mutable, as that will make it harder to reason about certain complexities in the code (like thread-safety).- xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version 6faecdc16f9c6c71460993937669b8fda150dac3)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 6faecdc16f9c6c71460993937669b8fda150dac3)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 6faecdc16f9c6c71460993937669b8fda150dac3)
-
Guus der Kinderen aed3692881212ecc70a05b8cb582538e4b54d10b
OF-2245: Replace volatile boolean with AtomicBoolean
It is hard to reason over volatile booleans (or any member, for that matter). With volatile booleans, a compare-and-set strictly speaking isn't atomic, but there's the 'happens-before' guarantee for volatile members, that might make things safe again. In all, I'm not sure if the volatile member tracking the 'isClosed' state of a HTTP session is sufficiently thread safe. Replacing it with AtomicBoolean will ensure it is, and will at the very least remove ambiguity.- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version aed3692881212ecc70a05b8cb582538e4b54d10b)
-
Guus der Kinderen 9ad77047185248c1183d0c61b4183c7551dd8b94
OF-2248: Migrate BOSH properties
Use SystemProperty instead of JiveGlobals, for improved management.- i18n/src/main/resources/openfire_i18n.properties (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindManager.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindServlet.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
- xmppserver/src/main/java/org/jivesoftware/openfire/spi/ConnectionManagerImpl.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
- xmppserver/src/main/webapp/http-bind.jsp (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
-
Guus der Kinderen 87867ad66edb956a4cfa063eea1b390599571282
OF-2245: Improve thread safety in HttpSession
This commit adds the `@GuardedBy` annotation to allow for static analysis to verify that the applied locks conform with the design. With that, a couple of improvements have been made to ensure that certain fields are accessed only under the intended lock.- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 87867ad66edb956a4cfa063eea1b390599571282)
-
Guus der Kinderen 124a8fb17ee535586b42d3d90950ab48bafbb822
OF-2245: Remove redundant code
In the last commit (86fb7d63a31717b1d3adfd1d5c58eb33a87bcbd3) the state of a HttpSession was made to be equal to the state as maintained by its (Virtual)Connection. With this change, the behavior around `close()` and `isClosed()` is equal to that of the parent class of `HttpSession`: `ClientSession`. There no longer is a need to override these methods in `HttpSession`.- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 124a8fb17ee535586b42d3d90950ab48bafbb822)
-
Guus der Kinderen 523e099e0c2e5ef6cb51125c13a20ee1548b0a0f
Fix error log message.
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 523e099e0c2e5ef6cb51125c13a20ee1548b0a0f)
-
Guus der Kinderen 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739
Appying IDE-suggested fixes to BOSH implementation
These are various, minor fixes, as suggested by the development environment. Mainly related to unneeded (un)boxing, etc.- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindBody.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindException.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindManager.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpConnection.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/ResourceServlet.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
- xmppserver/src/main/java/org/jivesoftware/openfire/http/SessionEventDispatcher.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
-
Guus der Kinderen 87035a038b4ddfc179456b4705a6d69ea57cba10
OF-2245: Remove duplicate isClosed flag in HttpSession
Two different members appear to be used to track the state of a HttpSession:
- the 'isClosed' member of HttpSession
- the 'state' member of the (Virtual)Connection that represents the 'physical' connection to the client
This duplication should not be needed, and might even introduce logic errors. This commit removes the former, and replaces it with the latter.- xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 87035a038b4ddfc179456b4705a6d69ea57cba10)
-
Guus der Kinderen ec204744b7f994ef32a6f7794df4baa464f5f89d
Fix flappy behavior of connectivity tests
The BOSH-based connectivity tests regularly, but not consistently, fail on Github (but never locally, at least not for me).
It appears that it's always the first (of many) iteration that fails. Subsequent iterations of the same test seem to work.
Perhaps the test is starting 'to soon'? It's waiting for Openfire to start listening on port 7070 (which seem appropriate), but perhaps there's a brief period where that socket seems open, but data sent to it isn't properly being processed yet.
This commit adds an arbitrary 2 second wait between 'socket detected to be open' and the start of the test.- runConnectivityIntegrationTests (version ec204744b7f994ef32a6f7794df4baa464f5f89d)