mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Christophe Sovant
17.05.2008 2f2b85856e60cc6706b066a426148b58f378ce95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
// CDDL HEADER START
//
// The contents of this file are subject to the terms of the
// Common Development and Distribution License, Version 1.0 only
// (the "License").  You may not use this file except in compliance
// with the License.
//
// You can obtain a copy of the license at
// trunk/opends/resource/legal-notices/OpenDS.LICENSE
// or https://OpenDS.dev.java.net/OpenDS.LICENSE.
// See the License for the specific language governing permissions
// and limitations under the License.
//
// When distributing Covered Code, include this CDDL HEADER in each
// file and include the License file at
// trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
// add the following below this CDDL HEADER, with the fields enclosed
// information:
//      Portions Copyright [yyyy] [name of copyright owner]
//
// CDDL HEADER END
//
//
//      Copyright 2008 Sun Microsystems, Inc.
import netscape.ldap.*;
import netscape.ldap.util.*;
 
import java.util.*;
import java.io.*;
import java.lang.Thread;
 
public class Worker extends Thread {
 
    Server server;
    Client client;
    
    public Worker (Client client, Server server) {
        super();
        try {
            this.server = server;
            this.client = client;
            this.start();   
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
 
 
    public void run () {
        
        String value="";
        String[] attributes =  new String []{client.attr};
        LDAPConnection connection = new LDAPConnection();
        while (true) {
            try {
 
                connection.connect( server.host, server.port);
                // bind if needed
                if ( client.bindDN != null ) {
                    // println ("INFO", "Binding as \"" + client.bindDN + "\"");
                    connection.bind(client.bindDN, client.bindPW);
                }
                /* try {
                    synchronized (client.lock) {
                        client.lock.wait();
                    }
                } catch ( InterruptedException ie ) {
                    ie.printStackTrace();
                }*/
            while (true) {
                    //try {
                        client.inc_srchs_started();
                        value=(String) client.ValueList.get(client.random.nextInt(client.ValueList.size()));
                        //println ("INFO", "Modifying \""+myDN+"\" (replace "+ attribute + ":" + value + ") on master " + master.toString());
                        //connection.search(client.suffix, LDAPv3.SCOPE_SUB, new String (client.attr + "=" + value ), new String []{}, false );
                        //connection.search(client.suffix, LDAPv3.SCOPE_SUB, new String (client.attr + "=" + value ), new String []{client.attr}, false );
                        LDAPSearchResults results=connection.search(client.suffix, LDAPv3.SCOPE_SUB, new String (client.attr + "=" + value ), attributes, false );
                        while ( results.hasMoreElements() ) {
                            LDAPEntry entry=results.next();
                        }
                        client.inc_srchs_done();
                        results=null;
                        
                    //} catch (LDAPException e) {
                    //        println("ERROR", e.toString());
                            // Client.wait_after_error();
                    /*        try {
                                synchronized (client.lock) {
                                    client.lock.wait();
                                }
                            } catch ( InterruptedException ie ) {
                                ie.printStackTrace();
                            }  */
                    //}
 
                }
            }
            catch( LDAPException e ) {
                println( "ERROR" , e.toString() );
                // make sure we are disconnected
                try {
                    connection.disconnect();
                }
                catch( LDAPException e2 ) {
                    println( "ERROR" , e2.toString() );
                }
//                System.exit(1);
            }
        }
    }
 
    private String getDate() {
    
        // Initialize the today's date string
        String DATE_FORMAT = "yyyy/MM/dd:HH:mm:ss";
        java.text.SimpleDateFormat sdf = 
            new java.text.SimpleDateFormat(DATE_FORMAT);
        Calendar c1 = Calendar.getInstance(); // today
        return("[" + sdf.format(c1.getTime()) + "]");
   }
   
   private void println(String level, String msg) {
        System.out.println (getDate() + " - " + level + ": (" + server + ") " + msg );
   }
    
}