Wichtig
Detail
Detail
#26663
TreeGridComponent: Selektion wird nach Verwerfen einer transienten Zeile nicht zurück gesetzt
#27027
Deklarative Formulare: SelectField verschwindet nach Upload, wenn Optionsliste von mandatory Property abhängig ist
#27090
TreeTableComponent soll initial die erste sichtbare Zeile selektieren, wenn initial eine Zeile selektiert werden soll
Fehlerbehebung
(Nutzer-sichtbar)
Detail
#27047
Vermeidung von Datenmigration in #25732: Gespeicherte Suchanfragen u.U. nicht mehr lesbar
Wenn gespeichertes Suchanfragen Vergleichsoperatoren enthalten, dann können diese nach dem Update nicht mehr gelesen werden.
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)
Das Problem ist, dass das Konfigurationsschema beim Vergleichsoperator von einer generischen Enum<?> zu einer konkreten Enum geändert wurde. In der Konfiguration steht daher immer noch der vollqualifizierte Name der Enum-Konstante.
Lösung
Das Format zum Lesen von konkreten Enum-Konstanten unterstützt jetzt auch die Angabe eines vollqualifizierten Namens. Dann ist eine Datenmigration nicht notwendig.
Test
- /test-app-7-4-0/src/test/java/test/scripted/TestMigration740-SearchReports.xml aus #26933