Major
Detail
Bugfix
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
Bugfix
If a form is created with the form editor and the option "Foreign objects" is used here, a form can be configured again for the representation of the foreign objects.
If this happens, a NullPointerException occurs:
Caused by: java.lang.NullPointerException at com.top_logic.element.layout.formeditor.FormEditorUtil.createAnotherMetaAttribute(FormEditorUtil.java:98) at com.top_logic.element.layout.formeditor.FormEditorUtil.addAnotherMetaAttribute(FormEditorUtil.java:157) at com.top_logic.element.layout.formeditor.implementation.FieldDefinitionTemplateProvider.createFormMember(FieldDefinitionTemplateProvider.java:391) at com.top_logic.element.layout.formeditor.implementation.FieldDefinitionTemplateProvider.addMember(FieldDefinitionTemplateProvider.java:339) at com.top_logic.element.layout.formeditor.implementation.FieldDefinitionTemplateProvider.createDisplayTemplate(FieldDefinitionTemplateProvider.java:140) at com.top_logic.model.form.implementation.AbstractFormElementProvider.createDesignTemplate(AbstractFormElementProvider.java:139) at com.top_logic.model.form.implementation.FormElementTemplateProvider.createTemplate(FormElementTemplateProvider.java:42) at com.top_logic.model.form.implementation.AbstractFormContainerProvider.createContentTemplate(AbstractFormContainerProvider.java:84) at com.top_logic.model.form.implementation.FormDefinitionTemplateProvider.createDesignTemplate(FormDefinitionTemplateProvider.java:63) at com.top_logic.element.layout.formeditor.FormEditorControl.createTemplate(FormEditorEditorControl.java:312) at com.top_logic.element.layout.formeditor.FormEditorControl.writeContent(FormEditorEditorControl.java:279) at com.top_logic.element.layout.formeditor.FormEditorEditorControl.internalWrite(FormEditorEditorControl.java:273) at com.top_logic.layout.basic.AbstractControlBase$ScopedRenderer.write(AbstractControlBase.java:1306) at com.top_logic.layout.basic.AbstractControlBase$ScopedRenderer.write(AbstractControlBase.java:1293) at com.top_logic.layout.basic.AbstractDisplayContext.renderScoped(AbstractDisplayContext.java:109) at com.top_logic.layout.basic.AbstractControlBase.write(AbstractControlBase.java:550)
Cause
Since there are no objects in design mode, tl:FormField for tl:AttributeUpdate are created in create mode. Since there are no identifiers for the objects of the base type and the "foreign type" that are supposed to be created, an attempt is made to use the same transient object, which fails.
Solution
Use a "domain" when creating the AttributeUpdate.
Test
- Open form editor for a type X` != `Open user account.
- Select "Objects".
- Select the type user account.
- Configure form.
- Select the attribute "User name" here.
- Add an attribute of type X.
- Expectation: No NullPointerException will occur.