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
minor
#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

defect

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
minor
#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
defect

minor

#27364

Scheduler: Task execution fails with longer results

ClusterServicesRequiresMigration

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

As a result, 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.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

Solution

Increase the "MESSAGE" column in the "TASK_RESULT" table to 4,000 characters.

Data Migration

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

For H2:

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

Test

  • Configure and run a task that returns a result of 1,000 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