Gary Struthers [
http://community.jboss.org/people/GaryS] created the discussion
"Re: TaskService Referential integrity constraint violation"
To view the discussion, visit:
http://community.jboss.org/message/620978#620978
--------------------------------------------------------------
I changed WSHumanTaskHandler to CommandBasedWSHumanTaskHandler and that raises enough
questions to start another discussion. This looks like it is persisting both session and
task but a foreign key is wrong. Here is the console log I hope someone can see the
problem.
Hibernate: select task0_.id as col_0_0_, deadline1_.id as col_1_0_,
deadline1_.deadline_date as col_2_0_ from Task task0_, Deadline deadline1_ where
(deadline1_.id in (select startdeadl2_.id from Deadline startdeadl2_ where
task0_.id=startdeadl2_.Deadlines_StartDeadLine_Id) or deadline1_.id in (select
enddeadlin3_.id from Deadline enddeadlin3_ where
task0_.id=enddeadlin3_.Deadlines_EndDeadLine_Id)) and deadline1_.escalated=0 order by
deadline1_.deadline_date
Hibernate: insert into OrganizationalEntity (DTYPE, id) values ('User', ?)
Hibernate: insert into OrganizationalEntity (DTYPE, id) values ('User', ?)
Hibernate: insert into OrganizationalEntity (DTYPE, id) values ('User', ?)
Hibernate: insert into OrganizationalEntity (DTYPE, id) values ('User', ?)
Hibernate: insert into OrganizationalEntity (DTYPE, id) values ('Group', ?)
Waiting for the Mina Server to come up
..Hibernate: insert into SessionInfo (id, lastModificationDate, rulesByteArray, startDate,
OPTLOCK) values (null, ?, ?, ?, ?)
Connected ? =>true
OBJECT ASSERTED value:PIvars [id=59f8c5d6-a18c-40a6-9e37-973f0e0ad0e8, appId=0,
assignedTeam=null, assignedReader=null, applicationReady=false, score=null,
canScore=false, validScore=false, arRecommended=false, eligible2ndRead=false,
is2ndRead=false, need3ndRead=false, requiresQC=false] factId: 1
Hibernate: update SessionInfo set lastModificationDate=?, rulesByteArray=?, startDate=?,
OPTLOCK=? where id=? and OPTLOCK=?
Hibernate: update SessionInfo set lastModificationDate=?, rulesByteArray=?, startDate=?,
OPTLOCK=? where id=? and OPTLOCK=?
Hibernate: select sessioninf0_.id as id41_0_, sessioninf0_.lastModificationDate as
lastModi2_41_0_, sessioninf0_.rulesByteArray as rulesByt3_41_0_, sessioninf0_.startDate as
startDate41_0_, sessioninf0_.OPTLOCK as OPTLOCK41_0_ from SessionInfo sessioninf0_ where
sessioninf0_.id=?
Hibernate: select processins0_.InstanceId as InstanceId42_0_,
processins0_.lastModificationDate as lastModi2_42_0_, processins0_.lastReadDate as
lastRead3_42_0_, processins0_.processId as processId42_0_,
processins0_.processInstanceByteArray as processI5_42_0_, processins0_.startDate as
startDate42_0_, processins0_.state as state42_0_, processins0_.OPTLOCK as OPTLOCK42_0_
from ProcessInstanceInfo processins0_ where processins0_.InstanceId=?
Hibernate: update SessionInfo set lastModificationDate=?, rulesByteArray=?, startDate=?,
OPTLOCK=? where id=? and OPTLOCK=?
Hibernate: select sessioninf0_.id as id41_0_, sessioninf0_.lastModificationDate as
lastModi2_41_0_, sessioninf0_.rulesByteArray as rulesByt3_41_0_, sessioninf0_.startDate as
startDate41_0_, sessioninf0_.OPTLOCK as OPTLOCK41_0_ from SessionInfo sessioninf0_ where
sessioninf0_.id=?
Hibernate: insert into ProcessInstanceInfo (InstanceId, lastModificationDate,
lastReadDate, processId, processInstanceByteArray, startDate, state, OPTLOCK) values
(null, ?, ?, ?, ?, ?, ?, ?)
BEFORE RULEFLOW VARIABLE CHANGED canScore=true process:Read.bp[id=XXX]
AFTER RULEFLOW VARIABLE CHANGED canScore=true process:Read.bp[id=XXX]
BEFORE RULEFLOW VARIABLE CHANGED vars=PIvars [id=59f8c5d6-a18c-40a6-9e37-973f0e0ad0e8,
appId=0, assignedTeam=null, assignedReader=null, applicationReady=false, score=null,
canScore=false, validScore=false, arRecommended=false, eligible2ndRead=false,
is2ndRead=false, need3ndRead=false, requiresQC=false] process:Read.bp[id=XXX]
AFTER RULEFLOW VARIABLE CHANGED vars=PIvars [id=59f8c5d6-a18c-40a6-9e37-973f0e0ad0e8,
appId=0, assignedTeam=null, assignedReader=null, applicationReady=false, score=null,
canScore=false, validScore=false, arRecommended=false, eligible2ndRead=false,
is2ndRead=false, need3ndRead=false, requiresQC=false] process:Read.bp[id=XXX]
BEFORE RULEFLOW STARTED process:Read.bp[id=XXX]
BEFORE PROCESS NODE TRIGGERED node:Start[id=1] process:Read.bp[id=XXX]
BEFORE PROCESS NODE EXITED node:Start[id=1] process:Read.bp[id=XXX]
BEFORE PROCESS NODE TRIGGERED node:Score Application[id=6]
process:PEfreshmanRead.bp[id=XXX]
Hibernate: insert into WorkItemInfo (workItemId, creationDate, name, processInstanceId,
state, OPTLOCK, workItemByteArray) values (null, ?, ?, ?, ?, ?, ?)
AFTER PROCESS NODE TRIGGERED node:Score Application[id=6] process:Read.bp[id=XXX]
AFTER PROCESS NODE TRIGGERED node:Start[id=1] process:Read.bp[id=XXX]
AFTER PROCESS NODE TRIGGERED node:Start[id=1] process:Read.bp[id=XXX]
AFTER RULEFLOW STARTED process:Read.bp[id=XXX]
Hibernate: insert into Task (id, allowedToDelegate, taskInitiator_id, priority,
activationTime, actualOwner_id, createdBy_id, createdOn, documentAccessType,
documentContentId, documentType, expirationTime, faultAccessType, faultContentId,
faultName, faultType, outputAccessType, outputContentId, outputType, parentId,
previousStatus, processInstanceId, skipable, status, workItemId) values (null, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: insert into I18NText (id, language, text) values (null, ?, ?)
Hibernate: insert into Content (id, content) values (null, ?)
Hibernate: update ProcessInstanceInfo set lastModificationDate=?, lastReadDate=?,
processId=?, processInstanceByteArray=?, startDate=?, state=?, OPTLOCK=? where
InstanceId=? and OPTLOCK=?
Hibernate: update Task set allowedToDelegate=?, taskInitiator_id=?, priority=?,
activationTime=?, actualOwner_id=?, createdBy_id=?, createdOn=?, documentAccessType=?,
documentContentId=?, documentType=?, expirationTime=?, faultAccessType=?,
faultContentId=?, faultName=?, faultType=?, outputAccessType=?, outputContentId=?,
outputType=?, parentId=?, previousStatus=?, processInstanceId=?, skipable=?, status=?,
workItemId=? where id=?
Hibernate: update WorkItemInfo set creationDate=?, name=?, processInstanceId=?, state=?,
OPTLOCK=?, workItemByteArray=? where workItemId=? and OPTLOCK=?
Hibernate: update I18NText set Task_Names_Id=? where id=?
Hibernate: insert into PeopleAssignments_BAs (task_id, entity_id) values (?, ?)
Hibernate: insert into PeopleAssignments_PotOwners (task_id, entity_id) values (?, ?)
Hibernate: update SessionInfo set lastModificationDate=?, rulesByteArray=?, startDate=?,
OPTLOCK=? where id=? and OPTLOCK=?
0 14/08 12:33:53,996[NioProcessor-1] ERROR
hibernate.util.JDBCExceptionReporter.logExceptions - Referential integrity constraint
violation: "FK1EE418D2C122ED2: PUBLIC.PEOPLEASSIGNMENTS_POTOWNERS FOREIGN
KEY(ENTITY_ID) REFERENCES PUBLIC.ORGANIZATIONALENTITY(ID)"; SQL statement:
insert into PeopleAssignments_PotOwners (task_id, entity_id) values (?, ?) [23002-128]
5 14/08 12:33:54,001[NioProcessor-1] ERROR
hibernate.util.JDBCExceptionReporter.logExceptions - Referential integrity constraint
violation: "FK1EE418D2C122ED2: PUBLIC.PEOPLEASSIGNMENTS_POTOWNERS FOREIGN
KEY(ENTITY_ID) REFERENCES PUBLIC.ORGANIZATIONALENTITY(ID)"; SQL statement:
insert into PeopleAssignments_PotOwners (task_id, entity_id) values (?, ?) [23002-128]
7 14/08 12:33:54,003[NioProcessor-1] ERROR
event.def.AbstractFlushingEventListener.performExecutions - Could not synchronize database
state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:254)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:171)
at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1001)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:339)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)
at
org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:820)
at
org.jbpm.task.service.TaskServiceSession.addTask(TaskServiceSession.java:134)
at
org.jbpm.task.service.TaskServerHandler.messageReceived(TaskServerHandler.java:109)
at
org.jbpm.task.service.mina.MinaTaskServerHandler.messageReceived(MinaTaskServerHandler.java:41)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:713)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)
at
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:375)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:229)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)
at
org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:176)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)
at
org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:638)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:598)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:587)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:61)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:969)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.h2.jdbc.JdbcBatchUpdateException: Referential integrity constraint
violation: "FK1EE418D2C122ED2: PUBLIC.PEOPLEASSIGNMENTS_POTOWNERS FOREIGN
KEY(ENTITY_ID) REFERENCES PUBLIC.ORGANIZATIONALENTITY(ID)"; SQL statement:
insert into PeopleAssignments_PotOwners (task_id, entity_id) values (?, ?) [23002-128]
at
org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1119)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:247)
... 37 more
javax.persistence.RollbackException: Error while commiting the transaction
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:71)
at
org.jbpm.task.service.TaskServiceSession.doOperationInTransaction(TaskServiceSession.java:820)
at
org.jbpm.task.service.TaskServiceSession.addTask(TaskServiceSession.java:134)
at
org.jbpm.task.service.TaskServerHandler.messageReceived(TaskServerHandler.java:109)
at
org.jbpm.task.service.mina.MinaTaskServerHandler.messageReceived(MinaTaskServerHandler.java:41)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:713)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)
at
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:375)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:229)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)
at
org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:176)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:46)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:793)
at
org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:119)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:434)
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:426)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:638)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:598)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:587)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:61)
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:969)
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC
batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:254)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:171)
at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1001)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:339)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)
... 29 more
Caused by: org.h2.jdbc.JdbcBatchUpdateException: Referential integrity constraint
violation: "FK1EE418D2C122ED2: PUBLIC.PEOPLEASSIGNMENTS_POTOWNERS FOREIGN
KEY(ENTITY_ID) REFERENCES PUBLIC.ORGANIZATIONALENTITY(ID)"; SQL statement:
insert into PeopleAssignments_PotOwners (task_id, entity_id) values (?, ?) [23002-128]
at
org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1119)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:247)
... 37 more
Hibernate: update SessionInfo set lastModificationDate=?, rulesByteArray=?, startDate=?,
OPTLOCK=? where id=? and OPTLOCK=?
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/620978#620978]
Start a new discussion in jBPM at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]