diff --git a/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java b/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java index 5eed214d8cb2852593348dbf67122aeb2ad5a9e5..bc07ff0c839daccaf9860c17fa5841cb7ee173f1 100644 --- a/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java +++ b/src/main/java/org/olat/ldap/manager/LDAPGroupVisitor.java @@ -28,6 +28,8 @@ import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.SearchResult; +import org.olat.core.logging.OLog; +import org.olat.core.logging.Tracing; import org.olat.ldap.model.LDAPGroup; /** @@ -37,6 +39,8 @@ import org.olat.ldap.model.LDAPGroup; * */ public class LDAPGroupVisitor implements LDAPVisitor { + + private static final OLog log = Tracing.createLoggerFor(LDAPGroupVisitor.class); private final List<LDAPGroup> groups = new ArrayList<LDAPGroup>(); @@ -65,7 +69,7 @@ public class LDAPGroupVisitor implements LDAPVisitor { } } } catch (NamingException e) { - e.printStackTrace(); + log.error("", e); } group.setMembers(members); groups.add(group); diff --git a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java index 1b86a7b0471b48f3cc109c95f4f33fa2169bb4ad..9bef6542538a6dd6d29370ced6dbabb34c68bcd5 100644 --- a/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java +++ b/src/main/java/org/olat/ldap/manager/LDAPLoginManagerImpl.java @@ -1140,12 +1140,16 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, GenericEventListe List<Identity> currentMembers = businessGroupRelationDao .getMembers(businessGroup, GroupRoles.coach.name(), GroupRoles.participant.name()); + int count = 0; for(String member:members) { LDAPUser ldapUser = getLDAPUser(ctx, member, dnToIdentityKeyMap, errors); if(ldapUser != null) { Identity identity = ldapUser.getCachedIdentity(); syncMembership(businessGroup, identity, ldapUser.isCoach()); currentMembers.remove(identity); + if(++count % 20 == 0) { + dbInstance.commitAndCloseSession(); + } } } @@ -1153,6 +1157,9 @@ public class LDAPLoginManagerImpl implements LDAPLoginManager, GenericEventListe List<String> roles = businessGroupRelationDao.getRoles(currentMember, businessGroup); for(String role:roles) { businessGroupRelationDao.removeRole(currentMember, businessGroup, role); + if(++count % 20 == 0) { + dbInstance.commitAndCloseSession(); + } } } } diff --git a/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java b/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java index 5e8ad5840626a66e2cd20214efdd0f8089e4d4f2..567339390f09122b1f1f3a9c5b8a33359b033019 100644 --- a/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java +++ b/src/main/java/org/olat/user/propertyhandlers/GenderPropertyHandler.java @@ -64,6 +64,17 @@ public class GenderPropertyHandler extends AbstractUserPropertyHandler { return values; } + @Override + public void setUserProperty(User user, String value) { + if(value != null) { + if("m".equals(value)) { + value = "male"; + } else if("f".equals(value)) { + value = "female"; + } + } + super.setUserProperty(user, value); + } /** * @see org.olat.user.AbstractUserPropertyHandler#getUserProperty(org.olat.core.id.User, java.util.Locale)