[Building Sakai] removeEnrollmentSet constraint error

Gary Seibold gseibold at bumail.bradley.edu
Thu Sep 10 14:22:55 PDT 2009


When I try and using removeEnrollmentSet (or removeEnrollment) on  
Sakai 2.5 with mySQL I get a constraint error.  How should I be  
removing enrollments or enrollmentsets?

WARN: SQL Error: 1451, SQLState: 23000 (2009-09-09 11:55:22,202  
QuartzScheduler_Worker-0_org.hibernate.util.JDBCExceptionReporter)
ERROR: Cannot delete or update a parent row: a foreign key constraint  
fails (`sakai`.`cm_member_container_t`, CONSTRAINT  
`FKD96A9BC6456D3EA1` FOREIGN KEY (`ENROLLMENT_SET`) REFERENCES  
`cm_enrollment_set_t` (`ENROLLMENT_SET_ID`)) (2009-09-09 11:55:22,202  
QuartzScheduler_Worker-0_org.hibernate.util.JDBCExceptionReporter)
ERROR: Could not synchronize database state with session (2009-09-09  
11:55:22,202  
QuartzScheduler_Worker 
-0_org.hibernate.event.def.AbstractFlushingEventListener)
org.hibernate.exception.ConstraintViolationException: could not  
delete: [org.sakaiproject.coursemanagement.impl.EnrollmentSetCmImpl#1]
	at  
org 
.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java: 
71)
	at  
org 
.hibernate 
.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at  
org 
.hibernate 
.persister 
.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java: 
2541)
	at  
org 
.hibernate 
.persister 
.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java: 
2697)
	at  
org 
.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:74)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java: 
234)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java: 
146)
	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:1000)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
	at  
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java: 
106)
	at  
org 
.springframework 
.orm 
.hibernate3 
.HibernateTransactionManager.doCommit(HibernateTransactionManager.java: 
575)
	at  
org 
.springframework 
.transaction 
.support 
.AbstractPlatformTransactionManager 
.processCommit(AbstractPlatformTransactionManager.java:662)
	at  
org 
.springframework 
.transaction 
.support 
.AbstractPlatformTransactionManager 
.commit(AbstractPlatformTransactionManager.java:632)
	at  
org 
.springframework 
.transaction 
.interceptor 
.TransactionAspectSupport 
.commitTransactionAfterReturning(TransactionAspectSupport.java:314)
	at  
org 
.springframework 
.transaction 
.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java: 
117)
	at  
org 
.springframework 
.aop 
.framework 
.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
	at  
org 
.springframework 
.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at $Proxy98.removeEnrollmentSet(Unknown Source)
	at  
edu 
.bradley.sakai.SakaiHelper.addOrUpdateEnrollmentSet(SakaiHelper.java: 
257)
	at edu.bradley.sakai.SakaiHelper.doSetUpCourses(SakaiHelper.java:701)
	at edu.bradley.sakai.jobs.MaintainSites.execute(MaintainSites.java:28)
	at  
org 
.sakaiproject 
.component 
.app 
.scheduler.jobs.SpringJobBeanWrapper.execute(SpringJobBeanWrapper.java: 
80)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
	at org.quartz.simpl.SimpleThreadPool 
$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: java.sql.SQLException: Cannot delete or update a parent  
row: a foreign key constraint fails (`sakai`.`cm_member_container_t`,  
CONSTRAINT `FKD96A9BC6456D3EA1` FOREIGN KEY (`ENROLLMENT_SET`)  
REFERENCES `cm_enrollment_set_t` (`ENROLLMENT_SET_ID`))
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2921)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1570)
	at  
com 
.mysql 
.jdbc 
.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java: 
1085)
	at  
com 
.mysql 
.jdbc 
.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java: 
670)
	at  
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java: 
1159)
	at  
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java: 
1076)
	at  
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java: 
1061)
	at  
org 
.apache 
.commons 
.dbcp 
.DelegatingPreparedStatement 
.executeUpdate(DelegatingPreparedStatement.java:102)
	at  
org 
.hibernate 
.persister 
.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java: 
2523)
	... 24 more





More information about the sakai-dev mailing list