Release date: February 9, 2015
- Fix loading of custom widgets in Phonegap apps (Ticket 205599).
Release date: February 3, 2015
Backwards compatibility breaking changes
We have made some microflow expression checks more strict to prevent run-time errors. However, this can result in errors in your project after converting to the new version.
Summary of changes:
- The unary minus cannot be applied to empty. Previously this resulted in a run-time error.
Mathematical operators (
+, -, *, div, :, mod) and comparison operators (
<=, <, >, >=) cannot be applied to empty. Previously these cases resulted in a run-time error.
- In if-then-else expressions the types of the then-branch and else-branch have to match exactly if a list type is used. Previously related entities were allowed, which could lead to a run-time error.
- Binary values cannot be compared for equality. In the specific case that you are testing whether a file is empty (
$fileDocument /Contents = **empty**), you can use the $fileDocument/HasContentsattribute instead.
- Applications which have been built before Mendix 2.5.1 and for which FileDocuments have been uploaded in production are advised not to upgrade to this version. Before Mendix 2.5.1 files were stored directly in deployment/data/files (e.g. deployment/data/files/12). In 5.12.0 a new structure is used for file storage for which the first folder name is the first two characters of a UUID. This new folder name can collide with the file name of a file uploaded before Mendix 2.5.1, which will ultimately result in a FileNotFoundException during upload. This issue will be fixed in 5.14.0, from this version on it’s safe to upgrade again for these applications.
ObjectStateNEW value from
IMendixObjectwas removed in this version as part of removing the deprecated create method (see below). Unfortunately, this enumeration value was not deprecated properly and its removal can lead to Java action compilation errors. In 5.14.0 this enumeration value will be reinstated and deprecated properly, so that it can be removed in a later version. Note that this only makes sure no compilation errors occur, ObjectState NEW is not set anymore within the platform and should not be used to check the state of the object. Use IMendixObject.isNew() for that or explicitly check ObjectState INSTANTIATED.
- If you cancel editing a newly created object, the changes on the object will be cancelled, but the object itself will not be removed.
- Added ‘Find advanced’ option to search for places where pages are opened including the way they are opened: content/pop-up/blocking pop-up (ticket 202965).
- It is now possible to open the context-menu in the project explorer using the menu key on the keyboard.
- Added possibility to define a JDBC URL instead of host and database names. Use the custom setting DatabaseJdbcUrl for this. The URL setting works for all database types except for PostgreSQL. When a URL is configured, it is not possible to have the database automatically created by Mendix.
- Importing XML will not result in duplicate keys anymore if an XML file with duplicate key entries is being imported (ticket 204517).
- Binary type as key is no longer allowed in XML-to-Domain mapping document (ticket 204517).
- DateTime values in XML are treated as if in the UTC timezone if no timezone is specified. See the DateTime FAQ.
- PDF export now renders Arabic text correctly (ticket 204657).
- It was possible to use entities in app services with names identical to the System entities FileDocument and Image. Consuming such an app service leads to errors. A consistency check has been added to prevent this situation.
- When exposing the same entity through more than 1 operation in an app service (either as input or output), while some of the selected attributes are inherited would sometimes incorrectly display consistency errors. This has been resolved.
- In the import wizard of the domain model, only check file existence when clicking next and only check element support when actually importing the WSDL. This was done too soon resulting in unnecessary dialogs.
- Fixed the problem that Mendix always kept one database connection open. At times this made it impossible for SQL Server to enable the
- Fixed default cancel button behaviour for persistable entities which had not been saved to the database yet. They are not being removed from the cache anymore.
- Fixed that users can resume their existing session after the platform has been restarted when persistent sessions are enabled (ticket 204678).
- Added support for custom permission classes which only contain 1-argument constructors (e.g.
JAXBPermission). This avoids incorrect
AccessControlexceptions for these permission classes. Added permission “setDatatypeConverter” for “javax.xml.bind.JAXBPermission”. Also added ‘read’-permissions for properties “com.sun.jersey.core.util.ReaderWriter.BufferSize” and “mapAnyUriToUri” (ticket 205207).
- Added ‘read’ permission for the “HSSFWorkbook.SheetInitialCapacity”, “HSSFRow.ColInitialCapacity”, and “HSSFSheet.RowInitialCapacity” properties (ticket 205305).
- Fix reversed text when exporting Arabic text to PDF (ticket 204657).
- Load custom widgets using script tags instead of dojo.require. This results in usable errors in the developers console. Note that in debug mode all custom widgets are loaded separately to ease debugging. If no custom widgets are used, nothing is loaded (ticket 101391).
- Fix PhoneGap sometimes getting the module loading order wrong, causing application not to start.
- Keep blocking progress bar visible until a Microflow execution is completely done (ticket 203999).
- Center modal popup with custom width / height in viewport (tickets 204115, 204284).
- Fix an issue when clicking a button on Windows Phone triggers double click (ticket 102956).
- Change the order in which stylesheets are loaded: theme.css now is always loaded after widgets.css, so custom theme’s style rules have higher priority then default ones (ticket 203033).
- Progress spinner of ‘Run’ button was not removed in some cases when starting the Runtime failed.
Removed deprecated methods
The following deprecated methods have been removed in this version:
Core.create(IContext context, String objectType) throws CoreException` (Mendix Business Server Public API).
These are methods in proxies based on domain model entities generated by the Mendix Business Modeler for use in custom Java actions (e.g.
Customer.create(context)). Use constructor instead.