Hi Sébastien, Here is the java version used :
# /usr/java/jdk1.6.0_23/bin/java -version java version "1.6.0_23" Java(TM) SE Runtime Environment (build 1.6.0_23-b05) Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing) # rpm -qf /usr/java/jdk1.6.0_23/bin/java jdk-1.6.0_23-fcs.i586 # rpm -qi jdk-1.6.0_23-fcs.i586 Name : jdk Relocations: /usr/java Version : 1.6.0_23 Vendor: Oracle and/or its affiliates. Release : fcs Build Date: Sat 13 Nov 2010 01:54:11 AM CET Install Date: Tue 05 Jul 2011 11:39:53 AM CEST Build Host: jdk-lin-1586 Group : Development/Tools Source RPM: jdk-1.6.0_23-fcs.src.rpm Size : 148955915 License: Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. Also under other license(s) as shown at the Description field. Signature : (none) Packager : Java Software <[email protected]> URL : http://java.sun.com/ Summary : Java(TM) Platform Standard Edition Development Kit Description : The Java Platform Standard Edition Development Kit (JDK) includes both the runtime environment (Java virtual machine, the Java platform classes and supporting files) and development tools (compilers, debuggers, tool libraries and other tools). The JDK is a development environment for building applications, applets and components that can be deployed with the Java Platform Standard Edition Runtime Environment. This is not the latest one but this is a Sun/Oracle JDK. Do you have some sample code which are using a Java array ? And just for your information i have another dataset for mailLocalAddress using array which correctly work : <dataset> <name>mailLocalAddress</name> <policy>FORCE</policy> <forceValues> <string> <![CDATA[js: var mails ; if (srcBean.getDatasetById("proxyAddresses") ) { mails = srcBean.getDatasetById("proxyAddresses").toArray(); for (var i=0; i<mails.length; i++ ) { mails[i] = mails[i].replace("smtp:",""); } } mails ]]> </string> </forceValues> </dataset> Regards, Le 02/05/12, Sébastien Bahloul <[email protected]> a écrit : > Hi Frédéric, > > First can you check that you are using a Sun/Oracle Java Runtime Environment > 6/7 (and not an OpenJDK) ? > > > And try to use a Java array instead of a Native java_script array as > explained there : > > > > > http://www.mozilla.org/rhino/ScriptingJava.html#creatingarrays > > > > java_script arrays should work, I will open an bug if you confirmed that > using Java arrays fixed your issue ! > > > Regards, > -- > Sebastien BAHLOUL > IAM / Security specialist > > > Ldap Synchronization Connector : http://lsc-project.org > Blog : http://sbahloul.wordpress.com/ > > > > > 2012/5/2 "POISSON Frédéric" <[email protected]> > > > > > > > Hello, > > > > I'm testing LSC 2.0rc2 with a group membership synchronization > > configuration between an Active Directory source to a OpenLDAP destination. > > This configuration runs correctly with release 1.2, but when i import > > inside lsc.xml configuration it failed on an java_script error > > java.lang.ClassNotFoundException: sun.org.mozilla.rhino.ScriptableObject. > > > > > > > > See attachment for output error and here is the configuration of > > uniqueMember attribute : > > > > Could you tell me if i made a mistake inside my lsc.xml ? > > > > <dataset> > > <name>uniqueMember</name> > > > > > > <policy>FORCE</policy> > > <forceValues> > > <string> > > <![CDATA[js: > > > > > > var dnRoot = "dc=example,dc=com"; > > var srcMembersNotFoundInDst = new Array(); > > var dstMembers = new Array(); > > var dnNoMembers = "uid=no_members,ou=Private," + dnRoot; > > > > > > var srcMembers = new Array(); > > if ( srcBean.getDatasetById("member")) > > { > > srcMembers = srcBean.getDatasetById("member").toArray() ; > > for (var i=0; i < srcMembers.length; i++ ) { > > > > > > try { > > var sam = srcLdap.attribute(srcMembers[i], > > 'sAMAccountName').get(0); > > > > dstMembers.push(ldap.search("ou=People","(uid="+sam+")").get(0) + "," + > > dnRoot) > > > > > > } > > catch (e) { > > srcMembersNotFoundInDst.push( > > srcMembers[i]); > > } > > } > > if ( srcMembersNotFoundInDst.length > 0 ) srcMembers = > > srcMembersNotFoundInDst.slice(0); > > > > > > srcMembersNotFoundInDst = []; > > for (var i=0; i < srcMembers.length; i++ ) { > > try { > > var cn = srcLdap.attribute(srcMembers[i], > > 'cn').get(0); > > > > > > > > dstMembers.push(ldap.search("ou=Groups","(cn=" + cn + ")").get(0) + "," + > > dnRoot) > > } > > catch (e) { > > > > > > srcMembersNotFoundInDst[i]=srcMembers[i]; > > } > > } > > if ( dstMembers.length == 0) dstMembers.push( dnNoMembers); > > dstMembers > > > > > > } > > else > > { > > dnNoMembers > > } > > ]]> > > </string> > > </forceValues> > > > > > > </dataset> > > > > > > The error seems to be the java_script array which is given as value instead > > of been taken as an multi valued attribute : > > .. > > uniqueMember: sun.org.mozilla.java_script.internal.NativeArray@78aa80 > > > > > > ... > > > > It doesn't appear if i change script with "dstMembers[0]" or > > "dstMembers[1]" result. In that case it only synchronize the first member > > or second member of the Active Directory group. > > > > > > > > Is there a way to increase java_script debugging output ? > > > > Thanks, > > > > -- > > Frederic Poisson > > > > > > > > _______________________________________________________________ > > > > Ldap Synchronization Connector (LSC) - http://lsc-project.org > > > > > > > > lsc-users mailing list > > > > [email protected] > > > > http://lists.lsc-project.org/listinfo/lsc-users > > > > > > > > > > > > -- Frederic Poisson ITD/I&E/ENG/MES/Messaging Engineering, LDAP/DNS Engineer tel. +33 2 23 28 42 67 [email protected] Cesson Chene Germain 9 Rue du Chene Germain 35510 Cesson-Sevigne France www.orange-business.com(http://www.orange-business.com/)
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

