CUBA Platform Changelog


Version 6.2.8

Bug fixes, including:

  1. Records move down in table linked to a NestedDatasource on opening an editor.
  2. LookupField starts to close uncontrollably after a few fast clicks.
  3. OptionsGroup resets value on setOptionsDatasource().
  4. Unable to import folders if the application is deployed in single WAR.
  5. The permittedExtensions attribute of FileUploadField is case-sensitive.
  6. Combination of defaultMode="fts" and "default filter" doesn't work properly in Filter.
  7. Incorrect _minimal view in case of deep nesting.
  8. [BPM] NPE when completing a task that was claimed before.
  9. [Charts and Maps] Default settings for SerialChart are not applied for GanttChart.

Improvements:

  1. Ability to use application properties for shortcuts of declarative actions, for example:
    <action id="apply" caption="msg://applyFilter" invoke="filterApply"
            shortcut="${cuba.gui.filterApplyShortcut}"/>
        
  2. Added Ctrl-Enter shortcut to BulkEditor.

Version 6.2.7

Bug fixes, including:

  1. ClassCastException on deletion of entity which has a collection attribute and cascade deletion is set for both collection and inverse attributes.
  2. XLS report does not work if application is deployed in single WAR beause of extra poi-3.9 included.
  3. ClassCastException occurs when importing a report if the application is deployed in single WAR.
  4. Incorrect insert script for sys$CategoryAttr is shown in System Information window.
  5. Wrong number of instances in LookupPickerField after scrolling.

Version 6.2.6

Improvements, including:

  1. Localized labels and tooltips in RichTextArea panel.
  2. [BPM] The getProcInstance() method has been added to ProcActionsFrame.

Bug fixes, including:

  1. Multiple joins in a datasource query filter don't work.
  2. JPQL delete query is transformed incorrectly.
  3. Delete policy and entity listeners may not be executed if some listener loads additional entities from the database.
  4. Database update command line utility based on the DbUpdaterUtil class does not work.
  5. ClassCastException when opening Application Properties screen if application is deployed to single WAR.
  6. On the Application Properties screen, changed value of property is reverted after clicking Refresh.
  7. [Charts and Maps] Unable to add titles for charts.
  8. [Charts and Maps] Google Maps display warnings or doesn't work in some environments.

    If you use maps, change the following application properties in your project:


Version 6.2.5

Improvements, including:

  1. Dynamic attributes: ability to set field width for all types and number of rows for the String type.
  2. [Reporting] Run Reports screen in dialog mode now has a specific size and is resizable.

Bug fixes, including:

  1. When copying access groups, constraints are copied incorrectly.
  2. Uploading files to Amazon S3 does not work in case of remote service invocations.
  3. Entity listeners are not invoked on implicit flush when executing a query.
  4. DataManager.getCount() does not work correctly if there are security constraints checked in memory.
  5. JPQL query with "not exists" and base entity name is transformed incorrectly.
  6. Error if a JPQL query contains @enum macro in brackets.
  7. Column caption is set instead of description when setting description for Table.Column in a screen controller.
  8. TabSheet.getTabs() returns a collection without specific order.

Version 6.2.3

Improvements, including:

  1. LookupField drop-down list scrolling usability on touchpad and touch devices.
  2. Add afterLookupCloseHandler and afterLookupSelectionHandler to TokenList for singleMode="false".
  3. Log user session expiration and removal.

Bug fixes, including:

  1. Screen links do not work properly, if the application is deployed to the ROOT context of a server.
  2. Embedded web content does not respond to keyboard and mouse.
  3. TabSheet listener for lazy tab is called before call to tab's frame controller init() method.
  4. Fix title case of platform screens in English locale.
  5. [Reporting] Parameter name is validated instead of parameter alias.

Version 6.2.2

Improvements, including:

  1. AddAction now supports AfterAddHandler, ExcludeAction invokes AfterRemoveHandler.
  2. Ability to add a column to Table programmatically.
  3. [Reporting] Option to not override existing report roles when importing report.

Bug fixes, including:

  1. Paging in tables does not work when using in-memory security constraints.
  2. Incorrect displaying of popups in tables.
  3. Table settings button sometimes covers sort direction icon.
  4. Transparent text in LookupField if it is enabled by its parent.
  5. Wrong SQL script is generated in the System information > Script for insert for boolean attribute on MS SQL.
  6. Exception when pressing Download button on the Server Log screen second time.
  7. NPE when specifying incompatible type in aggregatable tables.
  8. StackOverflowError in ScheduledExecution.toString().
  9. Tomcat throws ClientAbortException on browser disconnect.
  10. Warning from Atmosphere framework in the server log on stock Tomcat. To fix the problem in an existing project, do the following in modules/web/web/WEB-INF/web.xml:
  11. [Charts] Incremental add/remove operation after/before refresh can lead to duplicated items in a chart.
  12. [Reporting] Lookup screens for report input parameters are broken.
  13. [Reporting] ClassCastException in Show Charts screen when displaying a chart report.

Version 6.2.1

Improvements, including:

  1. Remember last used language on login window of the web client.
  2. Show progress of uploading of WAR files to Jelastic.

Bug fixes, including:

  1. UnsupportedOperationException when using RuntimePropertiesFrame.
  2. Multiple WAR building task fails.
  3. [BPM] Wrong order of the database update scripts for stencilset table and index creation.

Version 6.2.0

This is the first public release of platform version 6.2. All significant changes from version 6.1 are listed below.

  1. Breaking changes:
    1. Renamed classes:
      • Convertor > Converter
      • JSONConvertor > JSONConverter
      • XMLConvertor2 > XMLConverter2
    2. The beforeActionPerformedHandler and afterActionPerformedHandler properties of standard list actions (CreateAction, EditAction, etc.) have been removed. The new beforeRefreshHandler and afterRefreshHandler properties have been added to RefreshAction.
  2. Support for entity cache. See documentation for details.
  3. When loading entities through EntityManager, all local attributes are loaded regardless of what is specified in a view. The view affects only reference attributes. It eliminates all problems with accessing attributes in entity listeners and in arbitrary business logic executed inside a transaction.
  4. Support for MySQL v.5.6. Previously only v.5.7 was supported.
  5. Non-default database schema can be used on PostgreSQL and Microsoft SQL Server. See documentation for details.
  6. Middleware cluster improvements:
    1. Load on cluster communication from transferring user sessions has been greatly reduced.
    2. The app-core.cuba:type=ClusterManager JMX bean can display the number and size of sent/recieved messages and the shared state size.
    3. You can limit the cluster messages queue using the cuba.cluster.messageSendingQueueCapacity application property.
  7. web.xml version is now 3.0.
  8. The background tasks mechanism uses HTTP push instead of polling.
  9. The platform now prevents the access to the state of UI components from a non-UI thread: IllegalConcurrentAccessException is thrown in this case. The UIAccessor interface can be used to circumvent this restriction and update the state of UI components from a background thread.
  10. Protection from brute-force password cracking. See documentation for details.
  11. The platform now contains a mechanism for gathering runtime statistics of screens opening: see Administration > Screen Profiler. So you can quickly determine, what screens for what users are opened too slowly. The profiler displays the time spent on server, network latency and client (web browser) rendering time for each opened screen.
  12. Application properties stored in the database are temporarily cached in Web Client and Web Portal blocks for reducing the middleware invocations. The cached values are refreshed once in a minute. It means that when you change a property at runtime, it will be available to the Web Client and Web Portal blocks not immediately, but not later than in 1 minute.
  13. Some UI issues on touch devices have been fixed.
  14. Main window tabs can be moved by using drag-and-drop.
  15. Almost all visual components now have icon attribute.
  16. Menu items can have stylename attribute. See documentation for details.
  17. Component interface now has unwrap() and unwrapComposition() for obtaining underlying Vaadin or Swing components.
  18. Export to Excel can display aggregation results and counts of grouped records.
  19. Table component correctly handles aggregation for editable columns.
  20. Filter custom conditions can include special symbols using escape 'char' expression. See documentation for details.
  21. The Embedded component in Web Client can display files located inside VAADIN folder. See setRelativeSource() method.
  22. The setFocusable() method of buttons (Button, LinkButton, PopupButton, RelatedEntities) can be used to bypass the component when a user traverses a screen by the TAB key.
  23. The pageLength attribute of the LookupField and LookupPickerField components allows you to redefine the number of options on one page of the drop-down list, specified in the cuba.gui.lookupFieldPageLength application property.
  24. The permittedExtensions attribute of the FileUploadField and FileMultiUploadField components can be used to set permitted extensions of uploaded files. If the attribute is set, users will not be able to upload files with not permitted extensions.
  25. CORS settings can be set for REST API. See documentation for details.
  26. Thymeleaf template engine is now supported in the portal module in addition to FreeMarker.
  27. Standard Java serialization is used by default. See cuba.serialization.impl application property.
  28. [BPM] Custom stencils in BPM designer. See documentation for details.
  29. [BPM] ProcActionsFrame initialization has been simplified. See BPM quick start for details.
  30. Upgraded dependencies:
  31. Over 100 other bug fixes and improvements.

Upgrading projects from 6.1 to 6.2

  1. Run automatic upgrade in Studio (version 2.2+ is required) by selecting the new version in Project properies > Base projects > Platform version.
  2. Run update database scripts either in Studio by executing Run > Update database, or in command line by executing updateDb Gradle task.