Releases: rabbitmq/rabbitmq-java-client
4.0.3
Changes between 4.0.2 and 4.0.3
This is a maintenance release that includes a bug fix on connection creation and a bug fix in the NIO mode. This release is backward-compatible with 4.0.2.
Handle TimeoutException on connection creation
When several addresses are provided to the ConnectionFactory and when an address throws a TimeoutException on connection creation, the client wouldn't try the next addresses and throw an exception. Now the client tries to connect to the next address even on a TimeoutException.
GitHub issue: #262
Close SocketChannel correctly in NIO mode
The SocketChannel wasn't properly closed in NIO mode. The connections would show up a few dozens of seconds in the management web UI before being closed automatically by the server.
GitHub issue: #284
4.1.1.RC3
Changes between 4.1.0 and 4.1.1.RC3
This is a release candidate for 4.1.1, a maintenance release that includes bug fixes and a small improvement in the RpcServer class. This release is backward-compatible with 4.1.0.
Handle TimeoutException on connection creation
When several addresses are provided to the ConnectionFactory and when an address throws a TimeoutException on connection creation, the client wouldn't try the next addresses and throw an exception. Now the client tries to connect to the next address even on a TimeoutException.
GitHub issue: #262
Let reply properties be updated in RpcServer subclasses
The properties of a response message can now be updated with the preprocessReplyProperties and postprocessReplyProperties methods that are called around the handleCall method.
GitHub issue: #271
Remove e2e bindings for auto-delete exchanges
It was possible to have abandoned e2e bindings in the recordedBindings. This caused a channel error during recovery and caused remaining recovery items to fail as well.
Thanks to vikinghawk for this contribution.
GitHub PR: #281
basicCancel and basicConsume honor RPC timeout
The 2 methods basicCancel and basicConsume now use the channel RPC timeout (they used to not use any timeout at all).
Thanks to vikinghawk for this contribution.
GitHub PR: #278
Close SocketChannel correctly in NIO mode
The SocketChannel wasn't properly closed in NIO mode. The connections would show up a few dozens of seconds in the management web UI before being closed automatically by the server.
GitHub issue: #284
4.0.3.RC1
Changes between 4.0.2 and 4.0.3.RC1
This is a release candidate for 4.0.3, a maintenance release that includes a bug fix on connection creation and a bug fix in the NIO mode. This release is backward-compatible with 4.0.2.
Handle TimeoutException on connection creation
When several addresses are provided to the ConnectionFactory and when an address throws a TimeoutException on connection creation, the client wouldn't try the next addresses and throw an exception. Now the client tries to connect to the next address even on a TimeoutException.
GitHub issue: #262
Close SocketChannel correctly in NIO mode
The SocketChannel wasn't properly closed in NIO mode. The connections would show up a few dozens of seconds in the management web UI before being closed automatically by the server.
GitHub issue: #284
4.1.1.RC2
Changes between 4.1.0 and 4.1.1.RC2
This is a release candidate for 4.1.1, a maintenance release that includes bug fixes and a small improvement in the RpcServer class. This release is backward-compatible with 4.1.0.
Handle TimeoutException on connection creation
When several addresses are provided to the ConnectionFactory and when an address throws a TimeoutException on connection creation, the client wouldn't try the next addresses and throw an exception. Now the client tries to connect to the next address even on a TimeoutException.
GitHub issue: #262
Let reply properties be updated in RpcServer subclasses
The properties of a response message can now be updated with the preprocessReplyProperties and postprocessReplyProperties methods that are called around the handleCall method.
GitHub issue: #271
Remove e2e bindings for auto-delete exchanges
It was possible to have abandoned e2e bindings in the recordedBindings. This caused a channel error during recovery and caused remaining recovery items to fail as well.
Thanks to vikinghawk for this contribution.
GitHub PR: #281
basicCancel and basicConsume honor RPC timeout
The 2 methods basicCancel and basicConsume now use the channel RPC timeout (they used to not use any timeout at all).
Thanks to vikinghawk for this contribution.
GitHub PR: #278
v4.1.1.RC1
Changes between 4.1.0 and 4.1.1.RC1
This is a release candidate for 4.1.1, a maintenance release that includes a bug fix on connection creation and a small improvement in the RpcServer class. This release is backward-compatible with 4.1.0.
Handle TimeoutException on connection creation
When several addresses are provided to the ConnectionFactory and when an address throws a TimeoutException on connection creation, the client wouldn't try the next addresses and throw an exception. Now the client tries to connect to the next address even on a TimeoutException.
GitHub issue: #262
Let reply properties be updated in RpcServer subclasses
The properties of a response message can now be updated with the preprocessReplyProperties and postprocessReplyProperties methods that are called around the handleCall method.
GitHub issue: #271
4.0.3.RC1
Changes between 4.0.2 and 4.0.3.RC1
This is a release candidate for 4.0.3, a maintenance release that includes a bug fix on connection creation. This release is backward-compatible with 4.0.2.
Handle TimeoutException on connection creation
When several addresses are provided to the ConnectionFactory and when an address throws a TimeoutException on connection creation, the client wouldn't try the next addresses and throw an exception. Now the client tries to connect to the next address even on a TimeoutException.
GitHub issue: #262
4.1.0
Changes between 4.0.2 and 4.1.0
This is a maintenance release with a few improvements, focused mainly on usability. It's backward compatible with 4.0.x.
Make continuation timeouts configurable
It is now possible to set a timeout for synchronous AMQP calls (e.g. queueDeclare). The default timeout is 10 minutes (there was no timeout at all before that).
GitHub issue: #219
Emit a warning in NullTrustManager
NullTrustManager trusts every server certificate, it is not considered safe to use it in production. A message now warns against its usage and suggests some solutions.
GitHub issue: #230
Deprecate NullTrustManager
NullTrustManager is deprecated in favor of a implementation with a more explicit name: TrustEverythingTrustManager. This new implementation has the same behavior as NullTrustManager (including the warning mesage introduced in this release).
GitHub issue: #234
Create abstract class for metrics collection
Metrics collector implementations can now subclass AbstractMetricsCollector, which contains the tricky metrics collection logic. This makes the metrics collection easier to extend with new metrics library (e.g. Dropwizard Metrics in the Java client or Spring Boot Metrics).
GitHub issue: #222
4.1.0.RC1
Changes between 4.0.2 and 4.1.0.RC1
This is a pre-release with a few improvements, focused mainly on usability. It's backward compatible with 4.0.x.
Make continuation timeouts configurable
It is now possible to set a timeout for synchronous AMQP calls (e.g. queueDeclare). The default timeout is 10 minutes (there was no timeout at all before that).
GitHub issue: #219
Emit a warning in NullTrustManager
NullTrustManager trusts every server certificate, it is not considered safe to use it in production. A message now warns against its usage and suggests some solutions.
GitHub issue: #230
Deprecate NullTrustManager
NullTrustManager is deprecated in favor of a implementation with a more explicit name: TrustEverythingTrustManager. This new implementation has the same behavior as NullTrustManager (including the warning mesage introduced in this release).
GitHub issue: #234
Create abstract class for metrics collection
Metrics collector implementations can now subclass AbstractMetricsCollector, which contains the tricky metrics collection logic. This makes the metrics collection easier to extend with new metrics library (e.g. Dropwizard Metrics in the Java client or Spring Boot Metrics).
GitHub issue: #222
v4.0.2
Changes between 4.0.1 and 4.0.2
This is a maintenance release that includes a bug fix in the NIO connector. This release is backward-compatible with 4.0.1.
NIO main thread can terminate due to an unhandled AssertionError
An AssertionError can be thrown in some edge cases and terminates the NIO main thread. This type of exception is now properly handled. AssertionError is actually not justified in this case, but this behavior is kept for compatibility reasons. More appropriate exceptions will be used in 5.0.0 (see #239).
GitHub issue: #237
4.0.2.RC1
Changes between 4.0.1 and 4.0.2.RC1
This is a release candidate for 4.0.2, a maintenance release that includes a bug fix in the NIO connector. This release is backward-compatible with 4.0.1.
NIO main thread can terminate due to an unhandled AssertionError
An AssertionError can be thrown in some edge cases and terminates the NIO main thread. This type of exception is now properly handled. AssertionError is actually not justified in this case, but this behavior is kept for compatibility reasons. More appropriate exceptions will be used in 5.0.0 (see #239).
GitHub issue: #237