Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
None
Description
When you attempt to delete a group that is still part of a composite group, the delete fails with a message saying "Error: there was a problem deleting the group", but no specifics on why there was a problem such as...that it is still part of a composite group.
Recommendation: create an error message for that case to tell the user why the group can't be deleted.
Same behavior currently happens for both UI and WS call.
Stack trace:
2016-11-07 16:20:58,106: [ajp-nio-8009-exec-10] WARN UiV2Group.groupDeleteSubmit(1459) - - Error deleting group: '000000028343'/'person'/'jdbc', Group[name=
uw:org:doit_security:Security Authorizations:hrs_vpn_approval,uuid=d1c4b9c9b39a43ecb7453ef4a62c5ac8]
edu.internet2.middleware.grouper.exception.GroupDeleteException: Problem in HibernateSession: HibernateSession (521f4930): notNew, notReadonly, READ_WRITE_NEW
, activeTransaction, session (6ba3fc71), stem name: uw:org:doit_security:Security Authorizations:hrs_vpn_approval, group extension: hrs_vpn_approval, group dE
xtension: HRS VPN Approval, uuid: d1c4b9c9b39a43ecb7453ef4a62c5ac8, ,
Problem in HibernateSession: HibernateSession (761565fb): new, notReadonly, READ_WRITE_NEW, notActiveTransaction, session (6ba3fc71)
at edu.internet2.middleware.grouper.Group$6.callback(Group.java:1838)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:687)
at edu.internet2.middleware.grouper.Group.delete(Group.java:1759)
at edu.internet2.middleware.grouper.grouperUi.serviceLogic.UiV2Group.groupDeleteSubmit(UiV2Group.java:1444)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at edu.internet2.middleware.grouper.util.GrouperUtil.invokeMethod(GrouperUtil.java:4068)
at edu.internet2.middleware.grouper.util.GrouperUtil.callMethod(GrouperUtil.java:4019)
at edu.internet2.middleware.grouper.j2ee.GrouperUiRestServlet.doGet(GrouperUiRestServlet.java:288)
at edu.internet2.middleware.grouper.j2ee.GrouperUiRestServlet.doPost(GrouperUiRestServlet.java:160)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:110)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at edu.internet2.middleware.grouper.ui.GrouperUiFilter.doFilter(GrouperUiFilter.java:1023)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:522)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:780)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:785)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1425)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: edu.internet2.middleware.grouper.internal.dao.GrouperDAOException: Problem in HibernateSession: HibernateSession (521f4930): notNew, notReadonly, READ_WRITE_NEW, activeTransaction, session (6ba3fc71)
at edu.internet2.middleware.grouper.hibernate.HibernateSession._internal_hibernateSessionCatch(HibernateSession.java:575)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:697)
at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3GroupDAO.delete(Hib3GroupDAO.java:138)
at edu.internet2.middleware.grouper.Group$6.callback(Group.java:1812)
... 41 more
Caused by: org.hibernate.exception.ConstraintViolationException: could not delete: edu.internet2.middleware.grouper.Group#d1c4b9c9b39a43ecb7453ef4a62c5ac8
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2728)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2911)
at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:189)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at edu.internet2.middleware.grouper.hibernate.HibernateSession._internal_hibernateSessionEnd(HibernateSession.java:498)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:694)
... 43 more
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-02292: integrity constraint (GROUPER.FK_COMPOSITES_RIGHT_FACTOR) violated - child record found
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:459)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:400)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:999)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:539)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:235)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:543)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:239)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1448)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1764)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4401)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:4568)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:5579)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2710)
... 53 more