I’m trying to update a comment but get a exception.
List<HistoricProcessInstance> all = historyService.createHistoricProcessInstanceQuery().list();
for (HistoricProcessInstance inst : all) {
managementService.executeCommand(new Command<Object>() {
@Override
public Object execute(CommandContext commandContext) {
List<Comment> comments = commandContext.getCommentEntityManager().findCommentsByProcessInstanceId(inst.getId());
for (Comment comm : comments) {
CommentEntity entity = (CommentEntity) comm;
String message = entity.getFullMessage();
message = message.replace("xxx", "yyy");
String eventMessage = message.replaceAll("\\s+", " ");
if (eventMessage.length() > 163) {
eventMessage = eventMessage.substring(0, 160) + "...";
}
entity.setMessage(eventMessage);
entity.setFullMessage(message);
commandContext.getDbSqlSession().update(entity);
}
return null;// doesn't care about return value
}
});
}
The exception is:
org.apache.ibatis.exceptions.PersistenceException:
Error updating database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for updateComment
Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for updateComment
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) ~[mybatis-3.3.0.jar:3.3.0]
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:172) ~[mybatis-3.3.0.jar:3.3.0]
at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:879) ~[flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:620) ~[flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:212) ~[flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:138) ~[flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:66) [flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47) [flowable-spring-5.22.0.jar:5.22.0]
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133) [spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45) [flowable-spring-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:31) [flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:40) [flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:35) [flowable-engine-5.22.0.jar:5.22.0]
at org.activiti.engine.impl.ManagementServiceImpl.executeCommand(ManagementServiceImpl.java:108) [flowable-engine-5.22.0.jar:5.22.0]
at com.kernelogic.herculesoa.maintenance.MigrateCommentContentForIP.execute(MigrateCommentContentForIP.java:35) [classes/:na]
at com.kernelogic.herculesoa.maintenance.MaintenanceRunner.run(MaintenanceRunner.java:72) [classes/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:800) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:784) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:771) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175) [spring-boot-1.4.1.RELEASE.jar:1.4.1.RELEASE]
at com.kernelogic.herculesoa.HerculesoaBackendApplication.main(HerculesoaBackendApplication.java:37) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_112]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_112]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_112]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_112]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-1.4.1.RELEASE.jar:1.4.1.RELEASE]