Dashboard

Merge from trunk

We now set the normal smtp socketfactory for javamail for sending test emails over implicit tls. If the test email method is passed in an sslcontext it will now correctly use to create sockets when sending emails.

Issue: MIRTH-3945

MIRTH-3945

We now set the normal smtp socketfactory for javamail for sending test emails over implicit tls. If the test email method is passed in an sslcontext it will now correctly use to create sockets when sending emails.

Issue: MIRTH-3945

Merge from trunk

Resized manager buttons to better fit linux server manager.

Issue: MIRTH-3926

MIRTH-3926

Resized manager buttons to better fit linux server manager.

Issue: MIRTH-3926

Merge from trunk

Now store the selection so that any subsequent calls to prepare data know which row to select when updating the table.

Issue: MIRTH-3906

MIRTH-3906

Now store the selection so that any subsequent calls to prepare data know which row to select when updating the table.

Issue: MIRTH-3906

Merge from trunk.

Resized the Cancel button in group assignment dialog and in new group dialog. Also needed to increase the size of the group assignment dialog. Verified in linux/osx/windows now.

Issue: MIRTH-3926

Issue: MIRTH-3926

Resized the Cancel button in group assignment dialog and in new group dialog. Also needed to increase the size of the group assignment dialog. Verified in linux/osx/windows now.

Issue: MIRTH-3926

MIRTH-3929: Fixed bug where groups could be imported while the channel table was in channels mode. Also fixed issue where multi-selecting files and dragging them into the table could cause multiple import threads to be processed at once. Code template libraries are now handled better by importing them once per group, in the case that a group is imported.

Merged from trunk.

MIRTH-3929: Fixed bug where groups could be imported while the channel table was in channels mode. Also fixed issue where multi-selecting files and dragging them into the table could cause multiple import threads to be processed at once. Code template libraries are now handled better by importing them once per group, in the case that a group is imported.
MIRTH-3937: Added 3.5.0 (and 3.4.1) to Version and ServerMigrator. Updated SQL creation scripts, mirth-build.properties, and all extension metadata XML files. Added migrate3_5_0 to Migratable, all implementations, and to MigratableConverter.
  1. … 119 more files in changeset.
MIRTH-3931: Added 3.4.1 to Version and ServerMigrator. Updated SQL creation scripts, mirth-build.properties, installer files and all extension metadata XML files.
  1. … 42 more files in changeset.
Branching 3.4.x
  1. … 4876 more files in changeset.
Tagging 3.4.0
MIRTH-3565: Fixed tool tips for the DICOM Sender local IP/port fields.
MIRTH-3874: Fixed tool tips for the File Writer.
MIRTH-3861: Set preferred width/height on the text pane so it won't scroll past the visible window.
MIRTH-1243: Fixed bug where users couldn't drag-and-drop channels between groups when the save task was enabled.
Minor tweaks to follow up on revision 7995.

Issue: MIRTH-2851

Fixed bug where sequence was being created in oracle when it existed already. This was causing the engine to fail to start.

Issue: MIRTH-2851

MIRTH-3167: Reverted optimization to the destination queue because it has ill effects under certain circumstances when using the thread assignment variable and multiple queue threads.
MIRTH-3798: Fixed bug that caused the uninstall extension endpoint to not work properly. The path parameter was conflicting with the other endpoints that used the extension name as a path parameter.
MIRTH-3167: Made optimizations to how the destination queue handles rotation, so that bursts of small buffer queries are avoided when using multiple processing threads. The reason this happens is because when multiple processing threads are used, messages can be added to the queue out of order. So it's possible that a high message ID is added first, setting the max message ID. Then even if no message has been returned to the queue, the buffer select is still being unnecessarily limited by the max message ID, when it should really only matter when rotateQueue is actually called.

Now, the max message ID is only set when a message gets returned to the queue (the minimum ID is also set at this time). When the rotation actually occurs, the min/max IDs are reset, starting the cycle over.

MIRTH-3854: Appended license and organized imports.
MIRTH-3917: Fixed bug that caused queued messages to be skipped under specific circumstances.

After deleting queued messages, the queue will get invalidated. When a queue thread is processing a message, there is a short period of time between the point the non-QUEUED status is committed to the database, and when the connector message is released from the queue. If the invalidate (and subsequent size update) is done in this period, then the size will be incorrect after the queue thread releases the connector message.

The destination queue now has a read/write lock to prevent this. When destination queue threads are about to commit a non-QUEUED status to the database, they need to obtain a read lock. Multiple threads can have concurrent read locks.

When the queue is invalidated due to messages being deleted, the caller first obtains the write lock. This will block until all queue threads have released their respective read locks. Then the invalidation and size update is done, without any queue threads being able to commit statuses to the database.

MIRTH-3798: Fixed typo.
MIRTH-3167: Turned the logging in dispatchRawMessage down from ERROR to WARN, so that multiple processing threads don't cause needless log spam.
MIRTH-3167: Made tweak to the destination queue so that the buffer gets refilled not only when it's empty, but also when it's partially full, but all messages in it belong to other queue thread IDs. This will ensure that queue threads don't go dormant just because a few messages are taking longer to process.
MIRTH-3167: Made tweak to the destination queue to more correctly handle rotation now that we allow multiple processing threads. Now that there are multiple simultaneous producers for the destination queue, it's possible that messages can be added to the buffer out of order (which is fine). This really only matters for rotation because we used the message IDs to determine when to sleep for the retry interval in the queue thread. Now instead of just checking the last message ID, we also go directly to the queue and check whether the current thread ID is flagged for rotation. This is done by the queue data source when the rotation actually occurs.

Because messages by multiple producers can be out of order, it's possible that a message with a higher ID can be committed to the database first. For queues with rotation on, this means that there can be bursts of smaller queries to grab messages _earlier_ than that first one. Overall this should be fine, since once those messages finish the max message ID will again be set and the next batch of messages will be retrieved.

MIRTH-3909: Fixed bug where conflicts weren't showing up correctly for libraries in the import dialog. This only happened when the library to be imported didn't have any code templates underneath it.