0.12 Release Notes

The full list of changes in the Qpid 0.12 release incorporates both the issues worked on during the 0.11 development stream and any final touches made during the 0.12 release process. A list of these JIRA issues can be found below.

Bugs Fixed

  • QPID-2158 - [Java 0-8/0-9] Overlong AMQShortStrings incorrectly encoded and cause Frame corruption
  • QPID-2216 - Error for missing ssl-cert-db option reports wrong option name
  • QPID-2759 - remove defunct jmxremote.access file user management rights manipulation abilities
  • QPID-2881 - If two subscribers are created with the same Address based destination with type=topic and link props containing durable=true, then the second subscription fails.
  • QPID-2882 - When creating the subscription queue the durable property specified in link props is not picked up
  • QPID-3004 - Qpid does not compile cleanly with clang++ compiler (2.8)
  • QPID-3066 - UTF8Test does not run under non VM 0-10 profiles
  • QPID-3070 - SessionComplete command sent for empty range
  • QPID-3111 - DynamicQueueExchangeCreateTest should check for 404 error code explicitly
  • QPID-3118 - cpp/examples/CMakeLists.txt tries to install non-existant files
  • QPID-3129 - cluster_tests.LongTests.test_failover hangs
  • QPID-3140 - Invalid handling of qpid.max_size
  • QPID-3141 - qpid-config ignores --queue-max-size of 0
  • QPID-3153 - sasl_fed_ex_*_cluster tests should test for aisexec running
  • QPID-3156 - Java client implementation of the Address syntax for Destinations throws a ClassCastException when used with the documented 'True' or 'False' values for node durability
  • QPID-3158 - .NET 0-8 clients fail to connect with some valid passwords
  • QPID-3159 - qmfgen -2 crashes
  • QPID-3162 - closed ServerConnections are held in memory due to being left in the ConnectionRegistry
  • QPID-3164 - Occasional test failures from SimpleAMQQueueTest.testSubscriptionSpecificRequeueForQueueWithMultipleSubscriptions
  • QPID-3165 - queue Runner may cease early during asynchronous delivery to multiple subscriptions when using selectors
  • QPID-3168 - C++ Broker: fix the "--help" text description of flow control thresholds.
  • QPID-3170 - Deleting/restoring dynamic federation routes, brokers will not relearn remote bindings that match local keys.
  • QPID-3180 - Ring queues do not work with --default-queue-size 0
  • QPID-3187 - No exception handling for many timer tasks in broker
  • QPID-3190 - qpid-tool does not allow numeric strings to be passed as strings
  • QPID-3194 - alternate-exchange (in x-declare part of address) does not work from JMS
  • QPID-3198 - Clustered broker should exit on unknown connection.
  • QPID-3199 - Severe but difficult to diagnose lock error in qpid::sys::StateMonitor
  • QPID-3201 - NullMessageStore not safe for concurrent DTX operations
  • QPID-3202 - Clustered broker shuts down with "unknown connection" error
  • QPID-3205 - NPE when setting the redelivery flag is delivery props are missing (or if there are no headers at all)
  • QPID-3206 - Variant converts from negative number in string format to unsigned integer without error
  • QPID-3208 - Exchanges make best effort to route messages if there is an error.
  • QPID-3214 - Deadlock between the failover mutex (in AMQConnection.java) and the current_exception_lock (in AMQSession.java)
  • QPID-3215 - cached exchange reference can cause cluster inconsistencies if exchange is deleted/recreated
  • QPID-3217 - Exchanges with IVE option cause cluster inconsistencies in updatees
  • QPID-3218 - AttributeError: 'NoneType' object has no attribute 'write_cmds'
  • QPID-3219 - some logic used to find current/available messages may return a QueueEntry currently in the dequeued state.
  • QPID-3220 - Specifying connection url option failover='singlebroker' causes the wrong failover policy to be used
  • QPID-3222 - Potentially TTL Overflow
  • QPID-3225 - Can't control exclusivity for subscription queues via exclusive entry in link options
  • QPID-3227 - rdma layer may allow overrun of send buffers
  • QPID-3232 - fetch(timeout=0) does not behave as expected on receiver with capacity=1
  • QPID-3235 - clustered qpidd broker fails ocassionly the cluster_tests.ShortTests.test_route_update
  • QPID-3241 - Deadlock in qmf agent triggered by producer flow control
  • QPID-3243 - C++ broker ignores --max-queue-count queue size parameter when setting default queue flow limits.
  • QPID-3244 - C++ broker should release flow control for a queue when it is deleted.
  • QPID-3245 - AMQSession_0_10 ack flusher timer task should be canceled when the underlying session is closed.
  • QPID-3254 - NPE when creating a durable subscriber using an addressing string configured in jndi.properties
  • QPID-3256 - Application which uses Qpid (in my case Excel) hangs on shutdown
  • QPID-3258 - Doxygen docs for qmf::engine have QMFE_EXTERN showing in the output
  • QPID-3261 - decrease severity and improve clarity of certain log messages
  • QPID-3268 - Incorrect syntax reported for connection options in drain and spout examples
  • QPID-3269 - Concurrently executing connections are allowed to use the same client ID
  • QPID-3270 - JMS Connection.getMetaData returns a usable enumeration only on the first call to getMetaData
  • QPID-3273 - JMSDeliveryMode has to be used as a string in a selector
  • QPID-3278 - Periodically expired messages are not dequeued from store and their removal is not reflected in policy or in management stats
  • QPID-3280 - Message throughput suffers in a cluster when TTL set
  • QPID-3282 - Potential bug when checking socket connections for identical local and remote endpoint
  • QPID-3295 - Under some conditions autoconf incorrectly detects that gcc doesn't support -Werror
  • QPID-3298 - bindings with x-match:all on headers exchange do not work correctly with dynamic federation
  • QPID-3318 - HouseKeepingTask leaks memory as a result of log actors not getting discarded properly
  • QPID-3321 - C++ client memory usage increases when acknowledging messages unless client explicitly calls session.sync() every so often
  • QPID-3334 - Missing file causes distcheck failure
  • QPID-3338 - qpidxarm CMake target is missing in 0-12
  • QPID-3353 - Windows-specific file is missing from 0.12 beta cpp source kit
  • QPID-3377 - Sending message with a subject to a queue fails
  • QPID-3394 - Broker "leaks" messages that require async completion.

Improvements

  • QPID-2228 - C++ "make dist " builds the entire broker just to print out qpidd --help
  • QPID-2905 - Fixes for mingw cross-compilation (C++)
  • QPID-2984 - Add statistics generation for broker message delivery
  • QPID-2985 - Add producer configurable transaction timeouts
  • QPID-3026 - The ApplicationRegistry object should be a singleton
  • QPID-3124 - Update release script for new build artifacts
  • QPID-3125 - Add junitreport task for readability in Java unit tests
  • QPID-3145 - messaging::Message API needs to be documented, little to no Doxygen comments
  • QPID-3151 - Remove dotnet and ruby from the --all release artifacts
  • QPID-3160 - C++: provide manually generated qpidd man page
  • QPID-3183 - improvements to QueueRunner
  • QPID-3186 - Import Export generalization to support a larger set of compilers and run time environments
  • QPID-3200 - Ability to acknowledge all messages up to and including a given message for a Session
  • QPID-3226 - Define more intuitive equality for Duration instances
  • QPID-3249 - Remove incomplete support for authentication at virtualhost level
  • QPID-3277 - AMQCallbackHandler improvements
  • QPID-3284 - Removed unused variables, which caused the build to break under GCC 4.6
  • QPID-3301 - Remove support for ACL V1 (aka SimpleXML) from Java Broker
  • QPID-3302 - Can't send QMFv2 requests from JMS due to inability to set app-id
  • QPID-3324 - Make it possible to give SSL port as an argument at broker start up
  • QPID-3329 - Configure C++ client connections to replace url-addresses rather than merging new addresses with old

Tasks

  • QPID-3184 - Amend ant build to produce cobertura coverage.xml
  • QPID-3213 - enable publishing of Maven artifacts for the client to the ASF Nexus instance
  • QPID-3236 - Add high-resolution timestamps to log files for debug situations
  • QPID-3260 - remove defunct Java components