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

7.9.5
TopLogic Release

2025-06-05

Verbesserung

Wichtig
#28577
Verbesserung Konfiguration WebFolder Anzeige
Detail
#28576
Excel-Export im Instance-Editor
#28590
Wartungsseite, um fehlende Repository-Ordner im Dateisystem zu erzeugen
#28629
Sichtbarkeit der Zeilenselektionsspalte im Layout-Editor konfigurieren.
#28657
Export also User-ID for columns of type tl.accounts:Person to Excel
#28662
Update JfreeChart to 1.5.6

Fehlerbehebung

Wichtig
#28440
Dynamische Sichtbarkeit bei berechneten Attributen wird ignoriert
#28607
Fehler bei Spaltengruppen
#28644
WebFolder-Attribute berücksichtigen nicht die dynamische Sichtbarkeit
Detail
#28315
Fehlender Changed-Check beim Wechsel in die Administration
#28379
SelectControl ignoriert den Wert für EmptyLabelImmutable
#28482
Fehlender Detail-Dialog im Login Messages Modul
#28559
Fehlerhafte Berechnung des Ablaufdatum von LoginMessages
#28562
Client-seitiger Fehler bei Auswahl eines Elements mit Tooltip im DropDown
#28569
Layout expandiert nicht über die verfügbare Breite
#28581
ExcelExport von HTML Attributen sollte keine Formatierungsinformationen enthalten
#28591
Fehlendes "Unbestimmt" Symbol bei Check-Boxen
#28592
Fehlende Dependency zwischen InitialProcessSetupService und InitialGroupManager
#28598
Multiple Einträge in I18NAttributeStorage bei Verwendung des InternationalizeAttributeProcessor
#28601
Unnötiger Speicherverbrauch in ChangeConcreteToDefinitionId
#28602
Update Apache POI to 5.4.1
#28603
Update ActiveMQ to 2.40.0
#28606
Fehler im Modelleditor bei mit Java implementierten dynamischen Label von Attributen
#28618
LabelProviderService unterstützt keine Enumerations
#28631
Email-Versand: Empfänger werden durch setRecipient() überschrieben
#28632
Filter von Enum-Spalte in Baumtabelle erzeugt Fehlermeldung
#28638
Doppelter Löschbutton und fehlende Sicherheitsabfrage in der Benutzerverwaltung
#28658
Show currently selected elements on top of selection table
#28660
TreeTableComponent setzt bei Selektion kein Modell
#28664
TableComponent setzt bei Selektion kein Modell
Fehlerbehebung

Detail

#28632

Filter von Enum-Spalte in Baumtabelle erzeugt Fehlermeldung

EnumFilterTreeTable

In einer Baumtabelle werden unterschiedliche Knotentypen angezeigt: "Top->Node->Leaf"

Auf Blatt Ebene ist ein Enum-Attribut definiert, welches inline gespeichert wird:

**model.xml** mit Annotation für inline-Speicherung in Quelltabelle:

    <reference 
        name="art"
	kind="forwards"
	mandatory="true"
	navigate="true"
	type="TemperaturprofilArt"
	>
	<annotations>
	    <storage-algorithm>
		<foreign-key-storage 
                    storage-attribute="art"
		    storage-type="Temperaturprofil"
		/>
	    </storage-algorithm>
	</annotations>
    </reference>

**meta.xml** mit Spaltendefinition zur Speicherung des Wertes:

  <metaobject
    object_name="Temperaturprofil"
    super_class="GenericObject"
  >
    <reference
      att_name="art"
      by-value="true"
      mandatory="true"
      monomorphic="true"
      target-type="FastListElt"
    />
...
  </metaobject>

Die Anzeige und Bearbeitung dieser Spalte funktioniert zunächst korrekt:

Problem

Ein Klick auf das Filter-Symbol führt jedoch zu einem Fehler:

2025-05-19T17:02:51,447 ERROR [qtp1700721442-120]: com.top_logic.util.error.ErrorHandlingHelper - Command 'dispatchControlCommand' failed. S(Tw3uGG5dlqewSzkWIMHv4RU05ULwRyeOPRzKEmlSPbA=) 
com.top_logic.util.error.TopLogicException: Internal error
	at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatchCommand(CommandDispatcher.java:218)
	at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatch(CommandDispatcher.java:134)
	at com.top_logic.mig.html.layout.CommandDispatcher.dispatchCommand(CommandDispatcher.java:127)
	at com.top_logic.base.services.simpleajax.AJAXServlet.processRequest(AJAXServlet.java:686)
	at com.top_logic.base.services.simpleajax.AJAXServlet.doPost(AJAXServlet.java:359)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:547)
	at com.top_logic.util.TopLogicServlet.doService(TopLogicServlet.java:402)
	at com.top_logic.util.TopLogicServlet.inContext(TopLogicServlet.java:266)
	at com.top_logic.util.TopLogicServlet$1.inContext(TopLogicServlet.java:334)
	at com.top_logic.util.TLContextManager.inInteractionInternal(TLContextManager.java:283)
	at com.top_logic.util.TLContextManager.inInteraction(TLContextManager.java:259)
	at com.top_logic.util.TopLogicServlet.enterContext(TopLogicServlet.java:329)
	at com.top_logic.util.TopLogicServlet.serviceWithLogMark(TopLogicServlet.java:183)
	at com.top_logic.util.TopLogicServlet.lambda$service$0(TopLogicServlet.java:167)
	at com.top_logic.util.TopLogicServlet.withSessionIdLogMark(TopLogicServlet.java:209)
	at com.top_logic.util.TopLogicServlet.service(TopLogicServlet.java:166)
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)
	at org.eclipse.jetty.ee10.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1379)
	at org.eclipse.jetty.ee10.servlet.ServletHolder.handle(ServletHolder.java:736)
	at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1614)
	at com.top_logic.knowledge.gui.layout.HttpSecureHeaderFilter.doFilter(HttpSecureHeaderFilter.java:135)
	at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:208)
	at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1586)
	at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1547)
	at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:805)
	at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:431)
	at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:464)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:571)
	at org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:703)
	at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:763)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:181)
	at org.eclipse.jetty.server.Server.handle(Server.java:179)
	at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:619)
	at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:971)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1201)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1156)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.AssertionError: Cache contains either 'com.top_logic.dob.identifier.ObjectKey' or 'com.top_logic.dob.meta.IdentifiedObject'.
	at com.top_logic.knowledge.ByValueReferenceStorageImpl.getObjectKey(ByValueReferenceStorageImpl.java:169)
	at com.top_logic.knowledge.ByValueReferenceStorageImpl.fromCacheToApplicationValue(ByValueReferenceStorageImpl.java:79)
	at com.top_logic.knowledge.ByValueReferenceStorageImpl.getApplicationValue(ByValueReferenceStorageImpl.java:102)
	at com.top_logic.knowledge.service.db2.AbstractDBKnowledgeItem.lookupValue(AbstractDBKnowledgeItem.java:148)
	at com.top_logic.knowledge.service.db2.DBKnowledgeItem.getAttributeValue(DBKnowledgeItem.java:246)
	at com.top_logic.knowledge.service.db2.DBKnowledgeItem.getValue(DBKnowledgeItem.java:189)
	at com.top_logic.knowledge.service.db2.AbstractDBKnowledgeItem.getValue(AbstractDBKnowledgeItem.java:314)
	at com.top_logic.model.v5.ReferencePreload.loadReferenceByValue(ReferencePreload.java:130)
	at com.top_logic.model.v5.ReferencePreload.prepare(ReferencePreload.java:102)
	at com.top_logic.model.export.Preloader.internalPrepare(Preloader.java:55)
	at com.top_logic.model.export.Preloader.prepare(Preloader.java:50)
	at com.top_logic.model.export.PreloadOperation.prepare(PreloadOperation.java:40)
	at com.top_logic.model.export.Preloader.prepare(Preloader.java:42)
	at com.top_logic.element.layout.grid.AbstractTreeGridBuilder$TreeGridHandler$2.doPrepareRows(AbstractTreeGridBuilder.java:466)
	at com.top_logic.layout.tree.model.AbstractTreeTableModel$TreeTable.prepareRows(AbstractTreeTableModel.java:222)
	at com.top_logic.layout.table.TableViewModel.internalRevalidateMatchCount(TableViewModel.java:2891)
	at com.top_logic.layout.table.TableViewModel.addToOpenFilters(TableViewModel.java:2611)
	at com.top_logic.layout.table.control.TableControl$OpenFilterDialogAction.openTableFilter(TableControl.java:1561)
	at com.top_logic.layout.table.control.TableControl$OpenFilterDialogAction.openTableFilter(TableControl.java:1552)
	at com.top_logic.layout.table.control.TableControl$OpenFilterDialogAction.executeChecked(TableControl.java:1547)
	at com.top_logic.layout.table.control.TableControl$CheckedTableCommand.execute(TableControl.java:1377)
	at com.top_logic.layout.table.control.TableControl$TableCommand.execute(TableControl.java:1327)
	at com.top_logic.layout.basic.AbstractControlBase.executeCommand(AbstractControlBase.java:981)
	at com.top_logic.layout.basic.component.ControlSupport.executeCommand(ControlSupport.java:223)
	at com.top_logic.layout.basic.component.ControlComponent$DispatchAction.handleCommand(ControlComponent.java:233)
	at com.top_logic.tool.boundsec.CommandHandlerUtil.handleCommand(CommandHandlerUtil.java:31)
	at com.top_logic.mig.html.layout.LayoutComponent.dispatchCommand(LayoutComponent.java:3063)
	at com.top_logic.mig.html.layout.CommandDispatcher.internalDispatchCommand(CommandDispatcher.java:196)
	... 40 more

Offenbar wird dabei versucht (Ermittlung tatsächlich vorhandener Werte?), dieses Attribut von einem übergeordneten Zeilenobjekt zu lesen, dass dieses Attribut (insbesondere dessen Speichervorschrift) nicht definiert.

Workaround

Anstatt die Attributspalte anzuzeigen, diese Spalte nochmal als berechnete Spalte konfigurieren. Wertermittlung und Speichervorschrift für den entsprechenden Zeilentyp implementieren und die Spalte für die anderen Typen als read-only deklarieren.

  • 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