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 Javascript 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 javascript array which is given as value instead of 
been taken as an multi valued attribute : 
..
uniqueMember: sun.org.mozilla.javascript.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 Javascript debugging output ?

Thanks,

--
Frederic Poisson

May 02 11:32:40 - DEBUG - Loading XML configuration from: 
/usr/products/lsc-2.0rc2/etc/lsc.xml
May 02 11:32:41 - INFO  - Logging configuration successfully loaded from 
/usr/products/lsc-2.0rc2/etc/logback.xml 
May 02 11:32:41 - INFO  - LSC configuration successfully loaded from 
/usr/products/lsc-2.0rc2/etc/
May 02 11:32:41 - INFO  - Connecting to LDAP server 
ldap://192.168.200.167:38956/dc=example,dc=com as cn=root DN,dc=example,dc=com
May 02 11:32:41 - INFO  - Connecting to LDAP server 
ldap://192.168.200.171:389/DC=smtp1,DC=local as 
CN=Administrator,CN=Users,DC=smtp1,DC=local
May 02 11:32:41 - INFO  - Starting sync for Groups
java.lang.ClassNotFoundException: sun.org.mozilla.rhino.ScriptableObject
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:169)
        at 
org.lsc.utils.JScriptEvaluator.convertJsToJava(JScriptEvaluator.java:225)
        at 
org.lsc.utils.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:119)
        at 
org.lsc.utils.ScriptingEvaluator.evalToStringList(ScriptingEvaluator.java:111)
        at org.lsc.beans.BeanComparator.getValuesToSet(BeanComparator.java:590)
        at 
org.lsc.beans.BeanComparator.getUpdatedObject(BeanComparator.java:292)
        at 
org.lsc.beans.BeanComparator.calculateModifications(BeanComparator.java:174)
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:709)
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:633)
        at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:604)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
May 02 11:32:41 - ERROR - Error while adding entry 
cn=groupe-l3,ou=Groups,dc=example,dc=com in directory 
:javax.naming.directory.InvalidAttributeValueException: [LDAP: error code 21 - 
uniqueMember: value #0 invalid per syntax]; remaining name 
'cn=groupe-l3,ou=Groups'
May 02 11:32:41 - ERROR - Error while synchronizing ID 
cn=groupe-l3,ou=Groups,dc=example,dc=com: java.lang.Exception: Technical 
problem while applying modifications to the destination
dn: cn=groupe-l3,ou=Groups,dc=example,dc=com
changetype: add
mailRoutingAddress: [email protected]
cn: groupe-l3
description: Groupe contenant les users L3
uSNCreated: 32988
objectClass: adobject
objectClass: inetLocalMailRecipient
objectClass: groupOfUniqueNames
objectClass: top
mailLocalAddress: [email protected]
mailLocalAddress: [email protected]
uniqueMember: sun.org.mozilla.javascript.internal.NativeArray@78aa80

May 02 11:32:41 - ERROR - All entries: 2, to modify entries: 1, modified 
entries: 0, errors: 1
May 02 11:32:41 - INFO  - Starting clean for Groups
May 02 11:32:41 - INFO  - All entries: 1, to modify entries: 0, modified 
entries: 0, errors: 0
_______________________________________________________________
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