Hi Frédéric,

As mentionned in the link sent before, try to initialize your destination
array through a Java constructor :


var dstMembers = java.lang.reflect.Array.newInstance(java.lang.String,
srcBean.getDatasetById("member").size());


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]>

> 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
>
>
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users

Reply via email to