Hi Sebastien,

I update configuration with this line but now i have this error :

May 03 11:05:33 - DEBUG - In object 
"cn=groupe-l3,ou=Groups,dc=example,dc=com":  Attribute "uniqueMember" is in 
FORCE status
May 03 11:05:33 - ERROR - Error while synchronizing ID {usncreated=32988}: 
java.lang.NullPointerException
May 03 11:05:33 - DEBUG - java.lang.NullPointerException
java.lang.NullPointerException: null
        at 
org.lsc.utils.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:124) 
~[lsc-core-2.0rc2.jar:na]
        at 
org.lsc.utils.ScriptingEvaluator.evalToStringList(ScriptingEvaluator.java:111) 
~[lsc-core-2.0rc2.jar:na]
        at org.lsc.beans.BeanComparator.getValuesToSet(BeanComparator.java:590) 
~[lsc-core-2.0rc2.jar:na]
        at 
org.lsc.beans.BeanComparator.getUpdatedObject(BeanComparator.java:292) 
~[lsc-core-2.0rc2.jar:na]
        at 
org.lsc.beans.BeanComparator.calculateModifications(BeanComparator.java:174) 
~[lsc-core-2.0rc2.jar:na]
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:709) 
[lsc-core-2.0rc2.jar:na]
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:633) 
[lsc-core-2.0rc2.jar:na]
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:604) 
[lsc-core-2.0rc2.jar:na]
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown 
Source) [na:1.6.0_31]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
[na:1.6.0_31]
        at java.lang.Thread.run(Unknown Source) [na:1.6.0_31]
May 03 11:05:33 - ERROR - All entries: 1, to modify entries: 0, modified 
entries: 0, errors: 1
May 03 11:05:33 - INFO  - Starting clean for Groups
May 03 11:05:33 - ERROR - Empty or non existant destination (no IDs found)


Here is the dataset :

                                <dataset>
                                        <name>uniqueMember</name>
                                        <policy>FORCE</policy>
                                        <forceValues>
                                                <string>
        <![CDATA[js:
        var dnRoot = "dc=example,dc=com"; 
        var srcMembersNotFoundInDst = new Array();
        var dstMembers = java.lang.reflect.Array.newInstance(java.lang.String, 
srcBean.getDatasetById("member").size());
        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>
Any ideas,

Notice that yesterday i update Java to release 1.6.0_31.


Le 03/05/12, Sébastien Bahloul  <[email protected]> a écrit :
> 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(tel:%2B33%202%2023%2028%2042%2067) 
> > [email protected]
> > 
> > 
> > Cesson 
> > Chene Germain 9 Rue du Chene Germain 35510 Cesson-Sevigne France
> > www.orange-business.com(http://www.orange-business.com/)
> > 
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 
> 
> 
--


 


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

Reply via email to