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

7.5.2
TopLogic Release

2023-07-03

Verbesserung

Wichtig
#26283
In-App konfigurierte globale Dialoge
#27411
Smart Startup/Shutdown
#27431
App-Archetype nach MavenCentral deployen
Detail
#27248
Icons/Cliques für Knöpfe/Dialoge wenn möglich mit Theme-Variablen vorbelegen
#27264
Selektionskomponenten sollen ein-elementige Mengen nicht auspacken
#27267
ListModelBuilder soll in getModel(...) eine Collection zurückliefern
#27365
Default-Selektion basierend auf der letzten (aktuellen) Selektion wählen
#27412
Bulk-Dependency-Update 2023/06

Fehlerbehebung

Wichtig
#27388
Keine Anzeige des Fehlertextes in Kompositionstabellen
#27407
Selektion der Grid verschwindet bei F5
#27408
AbstractFlexDataManager loggt Warnung beim mehrfachen Laden des selben Objektes
#27446
Falsche Lizenzanzeige für die TopLogic-Module in der Lizenzübersicht
Detail
#27230
Befehlsfreigabedienst: Ausnahmeregel funktioniert nicht
#27275
I18N-String als Namensattribut liefert Fehler
#27306
Optionprovider aktualisieren berechnete Wertvorschläge weiterhin nicht
#27312
Applikationstests: Keine Aufzeichnung von Eingaben in I18N-String-Attributen in Grid möglich
#27326
Speicherloch: Persönliche Konfiguration wird nicht richtig abgeräumt
#27340
Administration: Wartungsmodus funktioniert nicht richtig
#27341
TL-Script: NPE, wenn reguläre Ausdrücke auf "null" ausgewertet werden
#27343
LayoutEditor: Komponenten-Kanal-Auswahl für Dialog-Öffner-Buttons falsch
#27344
Unerwünschtes Inlinen von Properties beim Erstellen einer neuen App
#27349
Verschwindene Design-Knöpfe in Kacheln
#27364
Scheduler: Task-Ausführung schlägt bei längeren Ergebnissen fehl
#27381
Fehlerhafte Vorbelegung im Chart-JS Template
#27385
Fehlerhafte Berechnung der Sort-Order in Referenzen
#27400
ResKey: Fehlendes Quoting von nicht-primitiven Argumenten
#27403
Synthetische `UpdateChainLink`-Kette des `KBDataProducerTask`führt ins nichts
#27427
Potentielle NullPointerException beim Sortieren der Ergebnisse der Schnellsuche
#27429
Assertion-Error, wenn man inkompatiblen Wert in ComplexField setzt
Fehlerbehebung

Detail

#27364

Scheduler: Task-Ausführung schlägt bei längeren Ergebnissen fehl

Daten-MigrationSchedulerService

Tasks können Ergebnisse liefern, die in der Task-Anzeige angezeigt werden. Allerdings sind die Zeichen im Ergebnis auf 255 beschränkt, und ein Großteil wird schon durch den Internationalisierungsschlüssel eingenommen, der mitgespeichert wird.

Der Effekt ist, dass der Task fehlschlägt und sein Ergebnis nicht speichern kann:

First Exception: com.top_logic.knowledge.service.KnowledgeBaseException
	at com.top_logic.basic.ExceptionUtil.createException(ExceptionUtil.java:76)
	at com.top_logic.util.sched.task.log.TaskLogWrapper.commitTaskEnded(TaskLogWrapper.java:1218)
	at com.top_logic.util.sched.task.log.TaskLogWrapper.taskEnded(TaskLogWrapper.java:277)
	at com.top_logic.util.sched.task.log.TaskLogWrapper.taskEnded(TaskLogWrapper.java:270)
	at com.top_logic.model.search.providers.ScriptTask.lambda$run$0(ScriptTask.java:67)
	at com.top_logic.basic.thread.ThreadContextManager.inInteractionInternal(ThreadContextManager.java:788)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteractionInternal(ThreadContextManager.java:798)
	at com.top_logic.basic.thread.ThreadContextManager.inSystemInteraction(ThreadContextManager.java:231)
	at com.top_logic.basic.thread.ThreadContext.inSystemContext(ThreadContext.java:175)
	at com.top_logic.model.search.providers.ScriptTask.run(ScriptTask.java:54)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: com.top_logic.knowledge.service.KnowledgeBaseException: Database operation failed.
	at com.top_logic.knowledge.service.db2.DefaultDBContext.commitTransaction(DefaultDBContext.java:2827)
	at com.top_logic.knowledge.service.db2.TransactionImpl.internalCommit(TransactionImpl.java:418)
	at com.top_logic.knowledge.service.AbstractTransaction.commit(AbstractTransaction.java:71)
	at com.top_logic.util.sched.task.log.TaskLogWrapper.taskEndedInternal(TaskLogWrapper.java:1245)
	at com.top_logic.util.sched.task.log.TaskLogWrapper.lambda$commitTaskEnded$2(TaskLogWrapper.java:1214)
	at com.top_logic.basic.util.retry.Retry.run(Retry.java:85)
	at com.top_logic.basic.util.retry.Retry.retry(Retry.java:47)
	at com.top_logic.util.sched.task.log.TaskLogWrapper.commitTaskEnded(TaskLogWrapper.java:1213)
	... 9 more
Caused by: java.sql.SQLException: Value too long for column "MESSAGE VARCHAR_IGNORECASE(250)": "'class.com.top_logic.model.search.providers.I18NConstants.TASK_MESSAGE__VALUE/sP... (256)"; SQL statement:
INSERT INTO "TASK_RESULT" ("BRANCH","IDENTIFIER","REV_MAX","REV_MIN","REV_CREATE","PHYSICAL_RESOURCE","TASK_NAME","MESSAGE","START","END","EXCEPTION_DUMP","WARNINGS","LOG_FILE","RESULT_TYPE","CLUSTER_NAME","CLUSTER_ID") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [22001-214]: INSERT INTO "TASK_RESULT" ("BRANCH","IDENTIFIER","REV_MAX","REV_MIN","REV_CREATE","PHYSICAL_RESOURCE","TASK_NAME","MESSAGE","START","END","EXCEPTION_DUMP","WARNINGS","LOG_FILE","RESULT_TYPE","CLUSTER_NAME","CLUSTER_ID") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
	at com.top_logic.basic.sql.SQLH.enhanceMessage(SQLH.java:514)
	at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.enhanceMessage(PrepStmtBasedCompiledStatement.java:207)
	at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.executeUpdate(PrepStmtBasedCompiledStatement.java:64)
	at com.top_logic.knowledge.service.db2.DefaultDBAccess.insert(DefaultDBAccess.java:982)
	at com.top_logic.knowledge.service.db2.DefaultDBAccess.insert(DefaultDBAccess.java:961)
	at com.top_logic.knowledge.service.db2.VersionedDBAccess.store(VersionedDBAccess.java:1084)
	at com.top_logic.knowledge.service.db2.VersionedDBAccess.update(VersionedDBAccess.java:1040)
	at com.top_logic.knowledge.service.db2.VersionedDBAccess.updateAll(VersionedDBAccess.java:1001)
	at com.top_logic.knowledge.service.db2.DefaultDBContext.commitChanged(DefaultDBContext.java:2560)
	at com.top_logic.knowledge.service.db2.DefaultDBContext.commitTransaction(DefaultDBContext.java:2755)
	... 16 more
Caused by: org.h2.jdbc.JdbcSQLDataException: Value too long for column "MESSAGE VARCHAR_IGNORECASE(250)": "'class.com.top_logic.model.search.providers.I18NConstants.TASK_MESSAGE__VALUE/sP... (256)"; SQL statement:
INSERT INTO "TASK_RESULT" ("BRANCH","IDENTIFIER","REV_MAX","REV_MIN","REV_CREATE","PHYSICAL_RESOURCE","TASK_NAME","MESSAGE","START","END","EXCEPTION_DUMP","WARNINGS","LOG_FILE","RESULT_TYPE","CLUSTER_NAME","CLUSTER_ID") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [22001-214]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:506)
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
	at org.h2.message.DbException.get(DbException.java:223)
	at org.h2.message.DbException.getValueTooLongException(DbException.java:322)
	at org.h2.value.Value.getValueTooLongException(Value.java:2573)
	at org.h2.value.Value.convertToVarcharIgnoreCase(Value.java:1319)
	at org.h2.value.Value.convertTo(Value.java:1121)
	at org.h2.value.Value.convertForAssignTo(Value.java:1092)
	at org.h2.table.Column.validateConvertUpdateSequence(Column.java:369)
	at org.h2.table.Table.convertInsertRow(Table.java:926)
	at org.h2.command.dml.Insert.insertRows(Insert.java:167)
	at org.h2.command.dml.Insert.update(Insert.java:135)
	at org.h2.command.dml.DataChangeStatement.update(DataChangeStatement.java:74)
	at org.h2.command.CommandContainer.update(CommandContainer.java:169)
	at org.h2.command.Command.executeUpdate(Command.java:252)
	at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:209)
	at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:169)
	at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.tryExecuteUpdate(PrepStmtBasedCompiledStatement.java:174)
	at com.top_logic.basic.db.sql.PrepStmtBasedCompiledStatement.executeUpdate(PrepStmtBasedCompiledStatement.java:62)
	... 23 more

Lösung

Vergrößern der Spalte "MESSAGE" in der Tabelle "TASK_RESULT" auf 4000 Zeichen.

Daten-Migration

  • In einem bestehenden System muss die Länge der Spalte manuell Vergrößert werden, z.B. durch:

Für H2:

ALTER TABLE TASK_RESULT ALTER COLUMN MESSAGE CHARACTER VARYING (4000);

Test

  • Task konfigurieren und starten, der ein Ergebnis von 1000 Zeichen liefert.
  • 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