Issue #331 has been updated by Sébastien Bahloul. Status changed from New to Rejected
I understand that I can close. ---------------------------------------- Bug #331: newlines in srcLdap response seem to cause a WrappedException http://tools.lsc-project.org/issues/331 Author: Martin Collins Status: Rejected Priority: Normal Assigned to: Category: Core Target version: Problem in version: 1.2.1, 2.0.x I believe responses in which attributes are continued on a new line are not handled correctly and trigger a WrappedException. I can't edit the source directory to remove one of the member's that has a new line in to see if that correctly syncs after, but all the groups that do not have new lines are syncing so i believe this to be the cause. Aug 16 16:28:54 - ERROR - Error while synchronizing ID {cn=group-name}: org.mozilla.javascript.WrappedException: Wrapped java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 (<cmd>#1) Aug 16 16:28:54 - DEBUG - org.mozilla.javascript.WrappedException: Wrapped java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 (<cmd>#1) org.mozilla.javascript.WrappedException: Wrapped java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 (<cmd>#1) at org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1693) [js-1.6R5.jar:na] at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:160) [js-1.6R5.jar:na] at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:204) [js-1.6R5.jar:na] at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66) [js-1.6R5.jar:na] at org.mozilla.javascript.gen.c2._c0(<cmd>:1) [na:na] at org.mozilla.javascript.gen.c2.call(<cmd>) [na:na] at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:340) [js-1.6R5.jar:na] at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2758) [js-1.6R5.jar:na] at org.mozilla.javascript.gen.c2.call(<cmd>) [na:na] at org.mozilla.javascript.gen.c2.exec(<cmd>) [na:na] at org.lsc.utils.JScriptEvaluator.instanceEval(JScriptEvaluator.java:227) [lsc-core-1.2.1.jar:na] at org.lsc.utils.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:140) [lsc-core-1.2.1.jar:na] at org.lsc.beans.BeanComparator.getValuesToSet(BeanComparator.java:677) [lsc-core-1.2.1.jar:na] at org.lsc.beans.BeanComparator.getAddModifyEntry(BeanComparator.java:372) [lsc-core-1.2.1.jar:na] at org.lsc.beans.BeanComparator.calculateModifications(BeanComparator.java:248) [lsc-core-1.2.1.jar:na] at org.lsc.AbstractSynchronize.synchronize2Ldap(AbstractSynchronize.java:376) [lsc-core-1.2.1.jar:na] at org.lsc.SimpleSynchronize.launchTask(SimpleSynchronize.java:272) [lsc-core-1.2.1.jar:na] at org.lsc.SimpleSynchronize.launch(SimpleSynchronize.java:155) [lsc-core-1.2.1.jar:na] at org.lsc.Launcher.run(Launcher.java:151) [lsc-core-1.2.1.jar:na] at org.lsc.Launcher.main(Launcher.java:123) [lsc-core-1.2.1.jar:na] Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList.java:547) [na:1.6.0_26] at java.util.ArrayList.get(ArrayList.java:322) [na:1.6.0_26] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) [na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [na:1.6.0_26] at java.lang.reflect.Method.invoke(Method.java:597) [na:1.6.0_26] at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:145) [js-1.6R5.jar:na] ... 18 common frames omitted Setup: Source: Windows 2k8 Destination: OpenLDAP 2.3.43 LSC: 1.2.1, 2.0-snap [macollins@lon3dwks6 lsc]$ ldapsearch -hdc1.example.com -b'dc=example,dc=com' '(cn=group-name)' member -LLL dn: CN=group-name,OU=Event,OU=All Users,DC=example,DC=com member: CN=User Name,OU=Other Contacts,OU=HQ,OU=All Users,DC=example,DC=c om Aug 16 16:33:16 - ERROR - Error while synchronizing ID {cn=group-two}: org.mozilla.javascript.WrappedException: Wrapped java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 (<cmd>#1) dn: CN=group-two,OU=Org,OU=All Users,DC=example,DC=com member: CN=User One,OU=HQ,OU=All Users,DC=example,DC=com member: CN=user Two,OU=HQ,OU=All Users,DC=example,DC=com member: CN=User Three,OU=HQ,OU=All Users,DC=example,DC=com member: CN=User Four,OU=HQ,OU=All Users,DC=example,DC=co m member: CN=User Five,OU=HQ,OU=All Users,DC=example,DC=com I've also tried the 2.0 snapshot too and that also has the same error. Config: # GLOBAL src.java.naming.security.credentials = secret # MAIN DOMAIN src.java.naming.security.principal = CN=User,CN=Users,dc=example,dc=com lsc.tasks.ADUsers.srcService.baseDn = cn=Users lsc.tasks.ADGroups.srcService.baseDn = CN=Users src.java.naming.provider.url = ldap://dc1:3268/dc=example,dc=com # DESTINATION dst.java.naming.provider.url = ldap://localhost:389/dc=example,dc=com dst.java.naming.security.authentication = simple dst.java.naming.security.principal = cn=ldapman,dc=example,dc=com dst.java.naming.security.credentials = password dst.java.naming.referral = follow dst.java.naming.ldap.derefAliases = never dst.java.naming.ldap.pageSize = 400 dst.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory dst.java.naming.ldap.version = 3 # SOURCE src.java.naming.security.authentication = simple src.java.naming.referral = ignore src.java.naming.ldap.derefAliases = never src.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory src.java.naming.ldap.version = 3 # TASKS lsc.tasks = ADUsers,ADGroups,ADGroups # USERS lsc.tasks.ADUsers.srcService = org.lsc.jndi.SimpleJndiSrcService lsc.tasks.ADUsers.dstService = org.lsc.jndi.SimpleJndiDstService lsc.tasks.ADUsers.srcService.filterAll = (&(sAMAccountName=*)(objectClass=user)(sAMAccountType=805306368)) lsc.tasks.ADUsers.srcService.filterId = (|(sAMAccountName={uid})(sAMAccountName={sAMAccountName})) lsc.tasks.ADUsers.srcService.pivotAttrs = sAMAccountName lsc.tasks.ADUsers.srcService.attrs = description cn sn displayName uid givenName mail cn sAMAccountName lsc.tasks.ADUsers.dstService.baseDn = ou=Users lsc.tasks.ADUsers.dstService.filterAll = (&(uid=*)(objectClass=posixAccount)) lsc.tasks.ADUsers.dstService.filterId = (|(uid={uid})(uid={sAMAccountName})) lsc.tasks.ADUsers.dstService.pivotAttrs = uid lsc.tasks.ADUsers.dstService.attrs = cn uid description cn sn uidNumber gidNumber homeDirectory objectClass givenName mail distinguishedName loginShell lsc.tasks.ADUsers.bean = org.lsc.beans.SimpleBean lsc.tasks.ADUsers.dn = "uid=" + srcBean.getAttributeValueById("sAMAccountName") + ",ou=Users" # Groups lsc.tasks.ADGroups.srcService = org.lsc.jndi.SimpleJndiSrcService lsc.tasks.ADGroups.dstService = org.lsc.jndi.SimpleJndiDstService #lsc.tasks.ADGroups.srcService.filterAll = (&(cn=*)(objectClass=group)(groupType:1.2.840.113556.1.4.803:=2147483648)) lsc.tasks.ADGroups.srcService.filterAll = (&(cn=*)(objectClass=group)) lsc.tasks.ADGroups.srcService.pivotAttrs = cn lsc.tasks.ADGroups.srcService.filterId = (&(cn={cn})) lsc.tasks.ADGroups.srcService.attrs = cn member lsc.tasks.ADGroups.dstService.baseDn = ou=Groups lsc.tasks.ADGroups.dstService.filterAll = (&(cn=*)(objectClass=posixGroup)) lsc.tasks.ADGroups.dstService.pivotAttrs = cn lsc.tasks.ADGroups.dstService.filterId = (cn={cn}) lsc.tasks.ADGroups.dstService.attrs = cn uniqueMember objectClass gidNumber distinguishedName lsc.tasks.ADGroups.bean = org.lsc.beans.SimpleBean lsc.tasks.ADGroups.dn = "cn=" + srcBean.getAttributeValueById("cn") + ",ou=Groups" dn.real_root = dc=example,dc=com # SyncOpts lsc.syncoptions.ADUsers = org.lsc.beans.syncoptions.PropertiesBasedSyncOptions lsc.syncoptions.ADUsers.default.action = K lsc.syncoptions.ADUsers.default.delimiter = $ lsc.syncoptions.ADUsers.sn.create_value = srcBean.getAttributeValueById("sn") == "" ? srcBean.getAttributeValueById("cn") : srcBean.getAttributeValueById("sn") lsc.syncoptions.ADUsers.objectClass.create_value = "top"$"inetOrgPerson"$"posixAccount"$"smokeUser" lsc.syncoptions.ADUsers.uidNumber.create_value = -1 lsc.syncoptions.ADUsers.gidNumber.create_value = -1 lsc.syncoptions.ADUsers.distinguishedName.create_value = "uid=" + srcBean.getAttributeValueById("sAMAccountName") + ",ou=Users,dc=example,dc=com" lsc.syncoptions.ADUsers.homeDirectory.create_value = "/hosts/data/store/ifs/home/" + srcBean.getAttributeValueById("sAMAccountName").toLowerCase() lsc.syncoptions.ADUsers.loginShell.create_value = "/bin/bash" lsc.syncoptions.ADGroups = org.lsc.beans.syncoptions.PropertiesBasedSyncOptions lsc.syncoptions.ADGroups.default.action = F lsc.syncoptions.ADGroups.default.delimiter = $ lsc.syncoptions.ADGroups.objectClass.create_value = "top"$"posixGroup"$"smokeGroup" lsc.syncoptions.ADGroups.distinguishedName.create_value = "cn=" + srcBean.getAttributeValueById("cn") + ",ou=Groups,dc=example,dc=com" lsc.syncoptions.ADGroups.gidNumber.create_value = -1 lsc.syncoptions.ADGroups.uniqueMember.force_value = \ var umembers = srcBean.getAttributeValuesById("member").toArray(); \ for (var i=0; i < umembers.length; i++ ) { \ umembers[i] = srcLdap.attribute(umembers[i], "sAMAccountName").get(0) || srcLdap.attribute(umembers[i], "cn").get(0); \ try { \ umembers[i] = ldap.attribute(ldap.list("ou=Users", "(uid=" + umembers[i] + ")").get(0), 'distinguishedName').get(0); \ } catch (e) { \ try { \ umembers[i] = ldap.attribute(ldap.list("ou=Groups", "(cn=" + umembers[i] + ")").get(0), 'distinguishedName').get(0); \ } catch (e) { \ umembers[i] = null \ } \ } \ } \ var members = new Array(); \ var j = 0; \ for(var i=0; i<umembers.length; i++ ) { \ if(umembers[i] != null) members[j++] = umembers[i]; \ } \ members -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://tools.lsc-project.org/my/account
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-dev mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-dev

