Last update: Edit


Release date: May 26th, 2017


Database Uniqueness Constraint Validation


  • To improve the efficiency of validations, the uniqueness of attributes, one-to-one associations, and one-to-many associations will be validated for new apps in the database instead of in Mendix Runtime. Existing projects can be set to database uniqueness validation in the project Settings. For more details, see Uniqueness Constraint Migration in the Mendix Reference Guide. (Tickets 47178, 46452)

Advanced Conditional Visibility/Editability

This release improves expression-based conditional visibility and editability. There will be more functions at your disposal, as all expression string functions are now accessible.

Other Fixes

  • We improved the performance of list operations. (Ticket 45252)
  • Runtime will not globally register the Bouncy Castle Java library in order to prevent clashes with the usage of Bouncy Castle in the user libraries. (Ticket 52109)
  • In a team server project, the Modeler now properly handles renames where only the casing changes (for example, Mywidget.mpk to MyWidget.mpk). Previously, such renames could result in files being deleted, and we are sorry for that.
  • The dialog box for adding and editing project configurations is now displayed correctly on high-resolution displays. (Ticket 50127)
  • The Enumeration properties dialog is now displayed correctly on high-resolution displays. (Ticket 50108)
  • The auto-completion pop-up window shown while editing microflow expressions is now displayed correctly on high-resolution displays. (Ticket 50103)
  • We fixed the Save changes and Cancel changes actions in a menu bar so that they now also apply to the Close page and Synchronize (Save changes-action only) behavior.
  • We fixed an issue where trying to sort a column displaying a calculated attribute resulted in an error. This only happened if the column displayed to the left of the column being sorted was hidden. (Ticket 49123)
  • We fixed the server-client serialization of changes for read-only date, Boolean, integer, long, and reference set members. (Ticket 52317)
  • Filling in an invalid date in a search input field now shows a validation error. (Ticket 45668)
  • We fixed an issue where the Modeler hanged during deployment. (Ticket 51128)
  • We changed the list view so that its items are updated when their objects are changed. This also makes it possible to use a Java Action to update a specific item in the list. (Ticket 50650)
  • We fixed the use of incorrect theming for the preview of phone and tablet apps.
  • When a data grid or template grid is conditionally visible, it is properly displayed according to the defined condition. However, when the condition changed so that the widget was to be removed from display, the grid was still there. We fixed this for you. (Tickets 48945, 49112, 49633)
  • When a widget is conditionally visible, the condition is reevaluated when the context object of the containing data view changes. This happens when, for example, you are navigating to a new page or when the data view is a listening data view and the selection of the widget it is listening to changes. When the conditionally visible widget was shown, it acted like it got a new context object twice, so it executed database queries twice. That seemed like a waste of time and resources, so we fixed it. (Ticket 50714)
  • When a web service exposes a microflow that applies entity access, the web service will now apply entity access as well. (Ticket 51036)
  • In web service calls, the custom header Authorization is no longer filtered out. (Tickets 51929, 51947)
  • When a one-way web service call action results in a response code that is not in the 2xx range, the microflow will now go into the error flow. (Ticket 50865)

Known Issues

  • In some situations, an object associated to another object cannot be committed during the execution of a before/after commit event, resulting in an error such as “Object of type ‘MyModule.MyEntity’ with guid ‘12345’ cannot be updated, as it does not exist anymore.” For example, consider two new objects A and B, wherein A (parent) is associated with B (child) and A has a before- or after-commit event. In this event, B will be changed and committed. If you then commit A, B will be marked as ‘autocommitting’. Because of this, committing B in the before- or after-commit event of A will fail, as it expects A to already exist in the database, which is not yet the case. (Tickets 59099, 59288)
  • Users with non-administrative user roles with the permission to manage users are able to escalate their privileges. For more information on this vulnerability, see SSA-875726 Privilege Escalation Vulnerability in Mendix.
  • When you have a conditionally visible container that contains a conditionally visible widget, the widget is not always initialized properly. (Ticket 53178)