Enhancement
Critical
Major
Detail
Detail
#25907
Layout editor: inconsistent behavior of unfold state, selection and reaction to object creation
#25951
Application tests: CheckLabeledExecutabilityOp fails to assert non-executability of literal ResKey reasons.
#25952
Model Editor: Enum default provider does not work for enum references for which singleton link storage was explicitly selected
#26002
ConfigurationItem-valued properties with format annotations may cause an attempt to create abstract config items when deserializing null values
#26012
Help editor crashes when a user has chosen a language that is not in the supported languages of the application
#26039
Gridcomponent: Display of context menu for new (transient) row object leads to UnsupportedOperationException
#26085
An attribute of type tl.model.search:Expr is not displayed in the form above a TL script editor
#26111
Context menu commands for table rows are erroneously executed on the table model when opening the context menu in the background of the table
#26153
Migration: Replay fails if string values with line breaks are contained in the dataset where a line ends with a semicolon
#26171
A TL script expression entered in a wizard template is reformatted when transferred to the final template
#26223
TL script: Under unfavorable conditions wrong parameter values when evaluating local functions
Bugfix
tl:DefaultLayoutGraphCleaner holds a tl:LayoutGraph in the _graph instance variable. This is only set at the beginning of the clean(LayoutGraph) method. After that, the value is kept until the next call to clean. Since tl:DefaultLayoutGraphCleaner is a singleton, this is a memory leak.
Test
- Run all tests in com.top_logic.demo, not just the scripted tests.
- The last two tests are testStructure and testSecurity from TestLayoutBasedSecurity.
- These come after all scripted tests, and for them, among other things, all persistence is restarted. This makes memory leaks much easier to find, because then any tl:TLObject mistakenly held in memory holds the entire old tl:KnowledgeBase in memory.
- Just before running the last tests, make a breakpoint in AbstractApplicationActionOp.process(...) to stop in testStructure or testSecurity.
- Create a dump].
- Open it for example with [JavaResources#Profiler:JVisualVM|JVisualVM].
- Open the histogram of classes, filter for the class tl:DBKnowledgeBase and pay attention to the number of instances. There must be only one.
- Also filter for tl:DefaultLayoutGraphCleaner and check the "Retained Heap". This should be smaller than 1 KB.