TopLogic - the automated application engine
  • Releases
  • Dokumentation
  • Github
  • Discord
  1. Home
  2. Releases
  3. TL_7.11.0
  4. #29338

7.11.0
TopLogic Release

2026-06-19

enhancement

major
#29084
JSON Schema Support for Typed Configuration
minor
#29334
Statuscode als Argument bei Antworten in REST-Anfragen

defect

major
#28993
Filter von dynamischen Spalten ignorieren den Attributtyp
#29042
Fehler in Spaltenfilter nach Double-Werten
#29234
OpenAPI server cannot return binary responses
#29325
Generated JSON schema marks a non-nullable layout-template property (dialog title) as nullable/optional
#29336
7.10: Bookmark-Links funktionieren bei eingeloggten Nutzern nicht
#29338
CreateTLSingletonProcessor legt doppelte Annotation an
minor
#28456
Referenz auf fehlende Dateien in subsession.jsp
#28485
Immutable/Disbled Booleanfelder über Tab erreichbar/fokusierbar
#28651
Unnötiger Platz bei Inline-Tabellen
#28725
Sinnlose Scroll-Bar im Hilfe-Editor
#29053
TL-Script: format() mit null input liefert IllegalArgumentException
#29066
"SafeHTML not started" Fehler bei scripted Tests
#29069
Ein berechnetes Attribut vom Typ "Allg. Suchausdruck" kann keine Closure zurückgeben
#29074
In einer Wertetransformation eines Komponentenkanals kann nicht auf die Formulardaten einer Komponente zugegriffen werden
#29075
Nach Modell-Änderung können invalide gewordene berechnete Attribute nicht mehr editiert werden
#29076
API-Key in REST-Schnittstellenkonfiguration wird nicht verborgen
#29091
Werte eines Kompositionsattribut nicht bearbeitbar, wenn im gleichen Formular vorher verwendet
#29240
Update mit falschem Attribute möglich
#29284
Flow-Diagram: Font-Metrik passt nicht - Texte fließen über ihren Rahmen hinaus
#29304
Ersatzwert-Attribut wird in transienten Objekten nicht korrekt übernommen
#29339
Fehlerhafte Migration in #28305
#29340
TL-Script: Optimierung von Datenbankabfragen mit transienten Objekte schlägt fehl
defect

major

#29338

CreateTLSingletonProcessor legt doppelte Annotation an

MigrationProcessor

Wenn man ein neues Singleton einführt, wird einem als Datenmigration folgendes vorgeschlagen:

  <add-annotations name="my.module">
    <annotations>
      <singletons>
        <singleton name="MY_OBJECT"
          type="MyObject"
        />
      </singletons>
    </annotations>
  </add-annotations>
  <create-singleton name="MY_OBJECT"
    module="my.module"
  >
    <singleton
      table="GenericObject"
      type="my.module:MyObject"
    />
  </create-singleton>

Wenn man diese durchführt, fährt die Anwendung anschließend jedoch nicht mehr hoch mit folgender Exception:

java.lang.RuntimeException: com.top_logic.basic.module.ModuleException: Unable to start implementation 'com.top_logic.element.model.DynamicModelService@7aa32b52'.
	at com.top_logic.util.AbstractStartStopListener.contextInitialized(AbstractStartStopListener.java:245)
	at ...
Caused by: com.top_logic.basic.module.ModuleException: Unable to start implementation 'com.top_logic.element.model.DynamicModelService@7aa32b52'.
	at com.top_logic.basic.module.BasicRuntimeModule.startUpImplementation(BasicRuntimeModule.java:199)
	at com.top_logic.basic.module.BasicRuntimeModule.startUp(BasicRuntimeModule.java:179)
	at com.top_logic.basic.module.BasicRuntimeModule.startUp(BasicRuntimeModule.java:152)
	at com.top_logic.basic.module.ModuleUtil.start(ModuleUtil.java:263)
	at com.top_logic.basic.module.ModuleUtil.startModuleAndAdd(ModuleUtil.java:768)
	at com.top_logic.basic.module.ModuleUtil$3.run(ModuleUtil.java:744)
	at com.top_logic.basic.module.ModuleUtil$3.run(ModuleUtil.java:1)
	at com.top_logic.basic.thread.ThreadContextManager.inInteractionInternal(ThreadContextManager.java:404)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteractionInternal(ThreadContextManager.java:446)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteraction(ThreadContextManager.java:438)
	at com.top_logic.basic.module.ModuleUtil.startInThreadContext(ModuleUtil.java:753)
	at com.top_logic.basic.module.ModuleUtil.startModulesAndAdd(ModuleUtil.java:717)
	at com.top_logic.basic.module.ModuleUtil.startUp(ModuleUtil.java:243)
	at com.top_logic.util.AbstractStartStopListener.startTokenSystem(AbstractStartStopListener.java:552)
	at com.top_logic.util.AbstractStartStopListener$2.run(AbstractStartStopListener.java:260)
	at com.top_logic.util.AbstractStartStopListener$2.run(AbstractStartStopListener.java:1)
	at com.top_logic.basic.thread.ThreadContextManager.inInteractionInternal(ThreadContextManager.java:385)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteractionInternal(ThreadContextManager.java:446)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteraction(ThreadContextManager.java:438)
	at com.top_logic.basic.thread.ThreadContext.inSystemContext(ThreadContext.java:157)
	at com.top_logic.util.AbstractStartStopListener.boot(AbstractStartStopListener.java:252)
	at com.top_logic.util.AbstractStartStopListener.contextInitialized(AbstractStartStopListener.java:206)
	... 24 more
Caused by: java.lang.IllegalStateException: Cannot parse old model configuration, no schema upgrade possible.
	at com.top_logic.element.model.DynamicModelService.upgradeModel(DynamicModelService.java:422)
	at com.top_logic.element.model.DynamicModelService.setupModel(DynamicModelService.java:345)
	at com.top_logic.element.model.DynamicModelService.startUpInContext(DynamicModelService.java:320)
	at com.top_logic.util.model.ModelService$1.inContext(ModelService.java:224)
	at com.top_logic.basic.thread.ThreadContextManager.inInteractionInternal(ThreadContextManager.java:322)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteractionInternal(ThreadContextManager.java:348)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteraction(ThreadContextManager.java:341)
	at com.top_logic.basic.thread.ThreadContext.inSystemContext(ThreadContext.java:176)
	at com.top_logic.util.model.ModelService.startUp(ModelService.java:220)
	at com.top_logic.basic.module.ManagedClass.doStart(ManagedClass.java:123)
	at com.top_logic.basic.module.BasicRuntimeModule.startUpImplementation(BasicRuntimeModule.java:197)
	... 45 more
Caused by: com.top_logic.basic.config.ConfigurationException: "Errors in context: Invalid indexed property entry for property 'name' (com.top_logic.element.config.SingletonConfig.getName()) at [no name] line 71 column 3695: Multiple entries with key: MY_OBJECT"
	at com.top_logic.basic.config.InstantiationContextImpl.toConfigurationException(InstantiationContextImpl.java:94)
	at com.top_logic.basic.config.InstantiationContextImpl.checkErrors(InstantiationContextImpl.java:54)
	at com.top_logic.basic.config.InstantiationContextAdaptor.checkErrors(InstantiationContextAdaptor.java:60)
	at com.top_logic.basic.config.AbstractConfigurationReader.checkSuccess(AbstractConfigurationReader.java:237)
	at com.top_logic.basic.config.AbstractConfigurationReader.read(AbstractConfigurationReader.java:228)
	at com.top_logic.basic.config.AbstractConfigurationReader.read(AbstractConfigurationReader.java:194)
	at com.top_logic.basic.config.TypedConfiguration.readConfig(TypedConfiguration.java:732)
	at com.top_logic.basic.config.TypedConfiguration.parse(TypedConfiguration.java:688)
	at com.top_logic.basic.config.TypedConfiguration.parse(TypedConfiguration.java:664)
	at com.top_logic.element.model.DynamicModelService.parseConfig(DynamicModelService.java:491)
	at com.top_logic.element.model.DynamicModelService.loadTransientModel(DynamicModelService.java:481)
	at com.top_logic.element.model.DynamicModelService.upgradeModel(DynamicModelService.java:420)
	... 55 more

D.h. die Migration legt die Annotation für das Singleton doppelt an. Insbesondere die Klasse com.top_logic.element.model.migration.model.CreateTLSingletonProcessor ruft in Zeile 152 MigrationUtils.modifyTLModel(log, connection, tlModel -> addSingletonDefintion(log, tlModel)); auf, was sie vermutlich nicht tun sollte.

  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

  • top-logic.com
  • Nutzungsbedingungen
  • Impressum
  • Rechtlicher Hinweis
  • Datenschutz
  • EN
  • Login