Major
Detail
Major
Detail
#26382
Error messages "Duplicate tag name..." when starting an application in the IDE from a TL-Studio
#26405
TTypeRewriter logs warning "Unable to resolve items by external reference" also unnecessarily
#26431
Changed superclass relationship leads to changed attribute list in the form editor only after a restart
#26484
In-app template for grid and tables: Function "Verifier for use as list item" does not get component model
#26536
When rendering HTML from TLScript expressions, configured renderers are not taken into account
#26797
Transaction with user input: invisible properties of the form model cannot be assigned values (initialized)
#26885
Constraints on declarative forms with arguments from a container reference lead to errors for new elements
#26921
ClassCastException when evaluating security rules that refer to (non-structuredElement) singletons of a module.
#26922
With generated subject classes, a default provider of an attribute in a non-structure class does not get a create context
#26988
In-app documentation generator does not extract documentation for overwritten config properties
#27027
Declarative forms: SelectField disappears after upload if option list depends on mandatory property
#27042
MaintenanceJspBase should write to the log first, then to the client, instead of the other way around.
Bugfix
(User-visible)
Detail
#27047
Avoiding data migration in #25732: Saved search queries may no longer be readable
If saved search queries contain comparison operators, these can no longer be read after the update.
com.top_logic.basic.config.ConfigurationException: Invalid value 'com.top_logic.model.search.ui.model.operator.StringCompare$Kind:CONTAINS' for property 'kind' (com.top_logic.model.search.ui.model.operator.StringCompare.getKind()) at [no name] line 28 column 16: com.top_logic.basic.config.ConfigurationException: Invalid value 'com.top_logic.model.search.ui.model.operator.StringCompare$Kind:CONTAINS', expected is one of 'CONTAINS, EQUALS, STARTS_WITH, ENDS_WITH, GE, GT, LE, LT, NOT_CONTAINS, NOT_EQUALS, NOT_STARTS_WITH, NOT_ENDS_WITH'.. at com.top_logic.basic.config.ConfigurationReader$Handler.parseValue(ConfigurationReader.java:184) at com.top_logic.basic.config.ConfigurationReader$Handler.readContents(ConfigurationReader.java:299) at com.top_logic.basic.config.ConfigurationReader$Handler.readNextElement(ConfigurationReader.java:205) ... at com.top_logic.basic.config.ConfigurationReader$Handler.parseContents(ConfigurationReader.java:167) at com.top_logic.basic.config.ConfigurationReader$Handler.parse(ConfigurationReader.java:112) at com.top_logic.basic.config.ConfigurationReader.parseAndClose(ConfigurationReader.java:2164) at com.top_logic.basic.config.ConfigurationReader.readInternal(ConfigurationReader.java:2144) at com.top_logic.basic.config.ConfigurationReader.readInternal(ConfigurationReader.java:2127) at com.top_logic.basic.config.ConfigurationReader.read(ConfigurationReader.java:2110) at com.top_logic.basic.config.ConfigurationReader.read(ConfigurationReader.java:2072) at com.top_logic.basic.config.TypedConfiguration.readConfig(TypedConfiguration.java:723) at com.top_logic.basic.config.TypedConfiguration.parse(TypedConfiguration.java:679) at com.top_logic.basic.config.TypedConfiguration.parse(TypedConfiguration.java:655) at com.top_logic.basic.config.TypedConfiguration.fromString(TypedConfiguration.java:634) at com.top_logic.model.search.ui.selector.SearchSelectorComponent.parseExpression(SearchSelectorComponent.java:297) ... 29 more Caused by: com.top_logic.basic.config.ConfigurationException: Invalid value 'com.top_logic.model.search.ui.model.operator.StringCompare$Kind:CONTAINS', expected is one of 'CONTAINS, EQUALS, STARTS_WITH, ENDS_WITH, GE, GT, LE, LT, NOT_CONTAINS, NOT_EQUALS, NOT_STARTS_WITH, NOT_ENDS_WITH'. at com.top_logic.basic.config.ConfigUtil.getEnum(ConfigUtil.java:2152) at com.top_logic.basic.config.format.BuiltInFormats$NullableEnumValueProvider.getValueNonEmpty(BuiltInFormats.java:44) at com.top_logic.basic.config.format.BuiltInFormats$NullableEnumValueProvider.getValueNonEmpty(BuiltInFormats.java:1) at com.top_logic.basic.config.AbstractConfigurationValueProvider.getValue(AbstractConfigurationValueProvider.java:31) at com.top_logic.basic.config.ConfigurationReader$Handler.parseValue(ConfigurationReader.java:182)
The problem is that the configuration schema in the comparison operator has been changed from a generic enum<?> to a concrete enum. The configuration therefore still contains the fully qualified name of the enum constant.
Solution
The format for reading concrete enum constants now also supports the specification of a fully qualified name. Data migration is then not necessary.
Test
- /test-app-7-4-0/src/test/java/test/scripted/TestMigration740-SearchReports.xml from #26933