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

Enhancement

Major
#26283
In-app configured global dialogs
#27411
Smart Startup/Shutdown
#27431
Deploy App Archetype to MavenCentral
Detail
#27248
Predefine icons/cliques for buttons/dialogs with theme variables if possible
#27264
Selection components should not unpack one-element sets
#27267
ListModelBuilder shall return a collection in getModel(...).
#27365
Select default selection based on the last (current) selection
#27412
Bulk Dependency Update 2023/06

Bugfix

Major
#27388
No display of error text in composition tables
#27407
Selection of the grid disappears with F5
#27408
AbstractFlexDataManager logs warning when loading the same object multiple times
#27446
Incorrect license display for TopLogic modules in the license overview
Detail
#27230
Command release service: exception rule does not work
#27275
I18N string as name attribute returns error
#27306
Option providers still do not update calculated suggested values
#27312
Application tests: No recording of inputs in I18N string attributes in grid possible
#27326
Memory hole: Personal configuration is not cleared properly
#27340
Administration: Maintenance mode does not work properly
#27341
TL script: NPE when regular expressions evaluate to "null".
#27343
LayoutEditor: Component channel selection for dialog open buttons wrong
#27344
Unwanted inlining of properties when creating a new app
#27349
Disappearing design buttons in tiles
#27364
Scheduler: Task execution fails with longer results
#27381
Incorrect preassignment in the chart JS template
#27385
Incorrect calculation of the sort order in references
#27400
ResKey: Missing quoting of non-primitive arguments
#27403
Synthetic `UpdateChainLink` chain of `KBDataProducerTask` leads nowhere
#27427
Potential NullPointerException when sorting the results of a quick search
#27429
Assertion error when setting incompatible value in ComplexField
Bugfix

Detail

#27364

Scheduler: Task execution fails with longer results

Data migrationSchedulerService

Tasks can return results that are displayed in the task display. However, the characters in the result are limited to 255, and a large part is already taken up by the internationalization key, which is also stored.

The effect is that the task fails and cannot save its result:

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.run(Retry.java:85) at com.top_logic.basic.util.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

Solution

Increase the "MESSAGE" column in the "TASK_RESULT" table to 4000 characters.

Data migration

  • In an existing system the length of the column must be increased manually, e.g. by:

For H2:

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

Test

  • Configure and start task that returns a result of 1000 characters.
  • Get Started
  • Github
  • Discord
  • Das Unternehmen hinter TopLogic
  • Softwareentwicklung heute
  • Kontakt

© Copyright – Business Operation Systems GmbH

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