I made a jira for this. Let me know which version you are using
Thanks,
Chris
From: [mailto:]
On Behalf Of Wallaert-Taquet Brigitte
Sent: Wednesday, July 20, 2011 5:45 AM
To:
Subject: [grouper-users] remove Type with required field for a group
Hello,
I try to remove a type (of name "GroupType") that I associated with a group (sifac:missions) but I obtain this error :
2011-07-20 11:29:49,369 DEBUG hib3.Hib3GroupDAO: < wallaert CD4E75CDB22C15ABDC72C9A7159F7C99-0015 f3870e6465ae4ac9a0092669b89472b0 wallaert lille1:ldap > deleting attribute: cnLDAP from group: lille1:groupesdetravail:sifac:missions since the type was removed
2011-07-20 11:29:49,373 ERROR actions.GrouperCapableAction: < wallaert CD4E75CDB22C15ABDC72C9A7159F7C99-0015 f3870e6465ae4ac9a0092669b89472b0 wallaert lille1:ldap > java.lang.RuntimeException: Exception removing field: cnLDAP, from group: lille1:groupesdetravail:sifac:missions,
Problem in HibernateSession: HibernateSession: isNew: false, isReadonly: false, grouperTransactionType: READ_WRITE_NEW,
Problem with type: GroupLDAP,
Problem in HibernateSession: HibernateSession: isNew: false, isReadonly: false, grouperTransactionType: READ_WRITE_NEW
at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3GroupDAO$3.callback(Hib3GroupDAO.java:231)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:500)
at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3GroupDAO.deleteType(Hib3GroupDAO.java:209)
at edu.internet2.middleware.grouper.Group$8.callback(Group.java:1825)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:500)
at edu.internet2.middleware.grouper.Group.deleteType(Group.java:1803)
at edu.internet2.middleware.grouper.ui.actions.SaveGroupAction.doTypes(Unknown Source)
at edu.internet2.middleware.grouper.ui.actions.SaveGroupAction.grouperExecute(Unknown Source)
at edu.internet2.middleware.grouper.ui.actions.GrouperCapableAction$1.callback(Unknown Source)
at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3TransactionDAO$1.callback(Hib3TransactionDAO.java:51)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:500)
at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3TransactionDAO.transactionCallback(Hib3TransactionDAO.java:41)
at edu.internet2.middleware.grouper.hibernate.GrouperTransaction.callbackGrouperTransaction(GrouperTransaction.java:72)
at edu.internet2.middleware.grouper.hibernate.GrouperTransaction.callbackGrouperTransaction(GrouperTransaction.java:91)
at edu.internet2.middleware.grouper.ui.actions.GrouperCapableAction.grouperTransactionExecute(Unknown Source)
at edu.internet2.middleware.grouper.ui.actions.GrouperCapableAction.execute(Unknown Source)
at org.apache.struts.action.RequestProcessor.processActionPerform(Unknown Source)
at org.apache.struts.action.RequestProcessor.process(Unknown Source)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.internet2.middleware.grouper.ui.LoginCheckFilter$1.callback(Unknown Source)
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:644)
at edu.internet2.middleware.grouper.ui.LoginCheckFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.internet2.middleware.grouper.ui.LoginCheckFilter$1.callback(Unknown Source)
at edu.internet2.middleware.grouper.GrouperSession.callbackGrouperSession(GrouperSession.java:644)
at edu.internet2.middleware.grouper.ui.LoginCheckFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:209)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at uk.ac.bris.is.grouper.ui.PreCASFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.internet2.middleware.grouper.ui.ErrorFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at edu.internet2.middleware.grouper.ui.GrouperUiFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:636)
Caused by: edu.internet2.middleware.grouper.exception.GroupModifyException: cannot delete required attribute: cnLDAP,
Problem in HibernateSession: HibernateSession: isNew: false, isReadonly: false, grouperTransactionType: READ_WRITE_NEW
at edu.internet2.middleware.grouper.Group$5.callback(Group.java:1273)
at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:500)
at edu.internet2.middleware.grouper.Group.deleteAttribute(Group.java:1255)
at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3GroupDAO$3.callback(Hib3GroupDAO.java:229)
... 56 more
I have to say that I modify the type GroupLDAP to rename the fields "cn" and "owner" in "cnLDAP" and "ownerLDAP" to avoid collision with internal field of grouper.
So, type "GroupLDAP" is now :
Field
|
Type
|
Required
|
Nullable
|
Read privilege
|
Write privilege
|
cnLDAP
|
attribute
|
true
|
false
|
read
|
admin
|
ownerLDAP
|
attribute
|
false
|
true
|
read
|
admin
|
PubLDAPGroup
|
attribute
|
true
|
false
|
read
|
admin
|
When I want to modify or delete a type of group (for exemple, to delete a field of the type or to delete the type itself), I have to put all fields required of the type in not required before modify or delete.
I don't see a rename command for the fields of a type.
I think that use required attribut in a type is very difficult and dangerous for the update, isn't it ?
Thanks.
--
Brigitte Wallaert-Taquet
Ingénieure d'études
Chargée d'étude
Espace collaboratif de Documents
Université Lille1
Sciences et Technologies