MIRTH-4153: Fixed issue where the dashboard filter would not work correctly when there are over 100 channels. The filter is now passed in on all requests instead of just the first one, and the servlet will correctly filter remaining channels by name.

MIRTH-4159: Fixed issue where rule/step content can get mixed when expanding or collapsing Iterators without first selecting them. The expand/collapse listener will now always set the updating flag (if it isn't already), and reset it in an invokeLater block to ensure the list selection listener doesn't incorrectly update the table model.

MIRTH-4159: Fixed issue where rule/step content can get mixed when expanding or collapsing Iterators without first selecting them. The expand/collapse listener will now always set the updating flag (if it isn't already), and reset it in an invokeLater block to ensure the list selection listener doesn't incorrectly update the table model.

MIRTH-3732: Update to previous tweaks; the fix before actually caused refreshing the channel table to no longer preserve selected states. So now the controller is updated from within the tag field only when necessary.

MIRTH-4127: Added additional warnings to the reprocess/remove dialogs so that it's harder for users to accidentally affect multiple messages at once. Users are now forced to type something in deliberately in order to perform these actions, though that option can be turned off in the Administrator settings. The User Authorization roles have also been split up so administrators can choose to allow users the ability to remove/reprocess a single message but not multiple at once.

MIRTH-4129: Additional fixes for the metadata search parameters in the API. The servlet is now correctly using the "full string" representation of the operators. The JAX-RS converter is now correctly accounting for some operators being substrings of others, and also allowing the user to specify whitespace in the search terms.

MIRTH-3685: Modified the statistics update statements to use GREATEST (or CASE for SQL Server / Derby). This way statistics will be consistent and not allowed to go negative for both the in-memory Statistics cache and the actual values written to the database.

MIRTH-4055: Fixed the response status handling of the Web Service Sender to be more in line with how the HTTP Sender works. Now, the status will be forced to ERROR only when a SOAP fault is detected. In all other cases, the message will remain QUEUED.

MIRTH-4071: Fixed issue where the JavaScript authorization script stopped working after stopping/restarting an HTTP Listener. The shutdown method was being called in onStop, when it should have been called in onUndeploy.

MIRTH-3823: A new source transformer step called Destination Set Filter has been added. This allows easier use of the destination set filtering feature we added in 3.1. Users can select the behavior (remove, removeAllExcept, removeAll), the specific destinations to exclude, and the actual conditional logic, which is the same format as the Rule Builder.

MIRTH-2337: Added a new Aggregate Results option on the Database Reader. When used, all rows in the selected result set will be aggregated together into a single message that is dispatched to the channel. The XML structure used is the same, except at all <result> nodes are inside a top-level parent called <results>. The Post-Process SQL options work essentially the same way, except that there's only one message ever, so all post-process actions are taken after the message has been processed through the channel.

If "After all rows" is selected and JavaScript mode is used a List of Map objects will be available in the JavaScript scope as the variable "results".

ROCKSOLID-336. Fix issue with negative values for statistics when reprocessing messages. We did this all in memory (rather than editing sql calls) because values in the display were not being updated, even after manual refresh. Users affected by this bug will need to manually clear statistics to remove negative values.

Statistics now has a new variable (allowNegatives) to control whether the object allows negative values or not. This is needed since some Statistics objects act as a 'diff' as opposed to being a counter for values.

MIRTH-3662: Added the ability to retrieve and reattach attachments from completely separate channels/messages. There is a new option on the destination settings to allow users to decide whether or not to reattach attachments on the outbound dispatch. There is also a new "expanded" token syntax which is used when the aforementioned option is disabled. In this way you can have multiple channels in a chain, where the first channel actually extracts/stores the attachment, and the final channel reattaches on the way out, all without having to store/extract the attachment more than once.