Hi Clément, I modified the code per instruction to use rdjs with single thread, "lsc -t 1" but it did not open a debug windows. What else do I need to make debugger work? Do I need additional Rhino JS packages?
> Date: Thu, 22 Jan 2015 10:31:58 +0100 > Subject: Re: [lsc-users] FW: AD Group Sync to OpenLDAP with Java 8 > From: [email protected] > To: [email protected] > CC: [email protected] > > 2015-01-21 23:05 GMT+01:00 Clément OUDOT <[email protected]>: > > 2015-01-21 22:36 GMT+01:00 W. Ho <[email protected]>: > >> > >> Hi, > >> > >> I have come across an issue to sync AD groups to OpenLDAP when invoking > >> Java > >> 8. > >> > >> I am using lsc core 2.1.2 with CentOS 6.5 and CentOS 7. Everything works > >> fine when I use Java 7. However, when switching to Java 8 it fails. The > >> error message is "invalid attribute syntax", followed by "member: value #0 > >> invalid per syntax". > >> > >> I performed the packet sniffing over the wire to see what breaks the > >> transaction. I discovered that when running Java 7 I could see group > >> members (full list with dn) were passing to the client and the sync went > >> through. When running Java 8, instead of pulling all members from the > >> group > >> the group attribute shew as "[object array]". No group member was > >> available. > >> > >> The code I use to sync group is listed below. Appreciate any help to > >> address this issue. > >> > >> Thanks, > >> > >> <dataset> > >> <name>member</name> > >> <policy>FORCE</policy> > >> <forceValues> > >> <string> > >> <![CDATA[rjs: > >> var membersSrcDn = srcBean.getDatasetValuesById("member"); > >> var membersDstDn = []; > >> for (var i=0; i<membersSrcDn.size(); i++) { > >> var memberSrcDn = membersSrcDn.get(i); > >> var sAMAccountName = ""; > >> try { > >> sAMAccountName = srcLdap.attribute(memberSrcDn, > >> "sAMAccountName").get(0); > >> } catch(e) { > >> continue; > >> } > >> var destDn = ldap.search("ou=Users,ou=HQ", "(uid=" + > >> sAMAccountName + ")"); > >> if (destDn.size() == 0 || destDn.size() > 1) { > >> continue; > >> } > >> var destMemberDn = destDn.get(0) + "," + > >> ldap.getContextDn(); > >> membersDstDn.push(destMemberDn); > >> } > >> membersDstDn > >> ]]> > >> </string> > >> </forceValues> > >> </dataset> > >> > > > > > > Use 'rjs:' instead of 'js:' to explicitely call rhino interpreter. > > Else it calls the javascript interpreter of the JVM which has change > > between java7 and java8. > > > Sorry, it seems you already use rjs. Could run the java debugger with > rdjs to try to get more information? See > http://lsc-project.org/wiki/documentation/latest/scripting/start#debugger > > Clément.
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

