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
                         
                    
                    Detail
#19344
Attributes of type TLEnumeration return collections despite multiple=false
Attributes that store a single tl:TLEnumeration object always return it in a collection. This is inconsistent with all other TLTypes.
See also:
- StorageDetail.isCollectionValued(MetaAttribute)
 - TLModelUtil.needsCollectionCompatibility(TLStructuredTypePart)
 
Solution
Attributes of type tl:TLEnumeration return one or no tl:TLClassifier if multiple="false", a collection of tl:TLClassifier if multiple="true", either empty or non-empty.
Code migration
- Check calls to TLModelUtil.needsCollectionCompatibility(TLStructuredTypePart). Here remove the hack of packing the value into a singleton list when setting a value, or unpacking a list when fetching the value from persistence.
 - ReplaceStorageImplementation.isCollectionValued(TLStructuredTypePart) with TLStructuredTypePart.isMultiple().
 - Re-generate wrapper if an attribute is of type TLEnumeration.
 
Data migration
The attributes projectTemplate:projectTemplate.Project#projectState, projectTemplate:projectTemplate.Activity#state and projectTemplate:projectTemplate.Issue#state must be defined as non-multiple (Only necessary when using tl-pos). The migration script Ticket_19344_state_attributes_single.migration.xml of doc:AutomaticDataMigration implements this.
Test
Refactoring. No test.