test/jdk/com/sun/jndi/ldap/RemoveNamingListenerTest.java
author prappo
Wed, 01 May 2019 15:10:09 +0100
branchJDK-8210696-branch
changeset 57346 3efc6cb7ffdb
parent 57345 ff884a2f247b
permissions -rw-r--r--
Removed the daemon-threads-based ExecutorService
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     1
/*
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
     2
 * Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     4
 *
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     7
 * published by the Free Software Foundation.
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     8
 *
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    13
 * accompanied this code).
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    14
 *
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    18
 *
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    21
 * questions.
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    22
 */
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
    23
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    24
import java.io.IOException;
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
    25
import java.net.InetAddress;
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    26
import java.net.ServerSocket;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    27
import java.util.ConcurrentModificationException;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    28
import java.util.Hashtable;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    29
import javax.naming.Context;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    30
import javax.naming.InitialContext;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    31
import javax.naming.NamingException;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    32
import javax.naming.event.EventContext;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    33
import javax.naming.event.NamingEvent;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    34
import javax.naming.event.NamingExceptionEvent;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    35
import javax.naming.event.NamingListener;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    36
import javax.naming.event.ObjectChangeListener;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    37
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    38
/**
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    39
 * @test
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    40
 * @bug 8176192
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    41
 * @summary Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    42
 * EventSupport.removeNamingListener
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    43
 * @modules java.naming
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
    44
 * @library lib/
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    45
 * @run main RemoveNamingListenerTest
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    46
 */
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    47
public class RemoveNamingListenerTest {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    48
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    49
    private static volatile Exception exception;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    50
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    51
    public static void main(String args[]) throws Exception {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    52
        // start the LDAP server
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    53
        TestLDAPServer server = new TestLDAPServer();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    54
        server.start();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    55
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    56
        // Set up environment for creating initial context
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    57
        Hashtable<String, Object> env = new Hashtable<>(3);
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    58
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    59
        env.put(Context.PROVIDER_URL, "ldap://localhost:" + server.getPort() + "/o=example");
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    60
        env.put("com.sun.jndi.ldap.connect.timeout", "2000");
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    61
        EventContext ctx = null;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    62
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    63
        try {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    64
            ctx = (EventContext) (new InitialContext(env).lookup(""));
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    65
            String target = "cn=Vyom Tewari";
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    66
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    67
            // Create listeners
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    68
            NamingListener oneListener = new SampleListener();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    69
            NamingListener objListener = new SampleListener();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    70
            NamingListener subListener = new SampleListener();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    71
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    72
            // Register listeners using different scopes
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    73
            ctx.addNamingListener(target, EventContext.ONELEVEL_SCOPE, oneListener);
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    74
            ctx.addNamingListener(target, EventContext.OBJECT_SCOPE, objListener);
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    75
            ctx.addNamingListener(target, EventContext.SUBTREE_SCOPE, subListener);
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    76
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    77
            //remove a listener in different thread
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    78
            Thread t = new Thread(new RemoveNamingListener(ctx, subListener));
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    79
            t.start();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    80
            t.join();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    81
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    82
            if (exception != null) {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    83
                throw exception;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    84
            }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    85
            System.out.println("Test run OK!!!");
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    86
        } finally {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    87
            if (ctx != null) {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    88
                ctx.close();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    89
            }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    90
            server.stopServer();
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    91
        }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    92
    }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    93
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    94
    /**
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    95
     * Helper thread that removes the naming listener.
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    96
     */
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    97
    static class RemoveNamingListener implements Runnable {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    98
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
    99
        final EventContext ctx;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   100
        final NamingListener listener;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   101
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   102
        RemoveNamingListener(EventContext ctx, NamingListener listener) {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   103
            this.ctx = ctx;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   104
            this.listener = listener;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   105
        }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   106
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   107
        @Override
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   108
        public void run() {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   109
            try {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   110
                ctx.removeNamingListener(listener);
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   111
            } catch (NamingException | ConcurrentModificationException ex) {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   112
                exception = ex;
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   113
            }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   114
        }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   115
    }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   116
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   117
    static class SampleListener implements ObjectChangeListener {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   118
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   119
        @Override
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   120
        public void objectChanged(NamingEvent ne) {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   121
            //do nothing
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   122
        }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   123
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   124
        @Override
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   125
        public void namingExceptionThrown(NamingExceptionEvent nee) {
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   126
            //do nothing
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   127
        }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   128
    }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   129
}
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   130
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   131
class TestLDAPServer extends BaseLdapServer {
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   132
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   133
    private byte[] bindResponse = {0x30, 0x0C, 0x02, 0x01, 0x01, 0x61, 0x07, 0x0A, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00};
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   134
    private byte[] searchResponse = {0x30, 0x0C, 0x02, 0x01, 0x02, 0x65, 0x07, 0x0A, 0x01, 0x00, 0x04, 0x00, 0x04, 0x00};
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   135
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   136
    public TestLDAPServer() throws IOException {
57346
3efc6cb7ffdb Removed the daemon-threads-based ExecutorService
prappo
parents: 57345
diff changeset
   137
        super(new ServerSocket(0, 0, InetAddress.getLoopbackAddress()));
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   138
        setCommonRequestHandler((msg, out) -> {
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   139
            switch (msg.getOperation()) {
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   140
                case BIND_REQUEST:
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   141
                    // Write an LDAP BindResponse
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   142
                    out.write(bindResponse);
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   143
                    break;
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   144
                case SEARCH_REQUEST:
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   145
                    // Write an LDAP SearchResponse
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   146
                    out.write(searchResponse);
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   147
                    break;
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   148
                default:
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   149
                    break;
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   150
            }
57345
ff884a2f247b JDK-8210696-branch: push initial fix change
xyin
parents: 47216
diff changeset
   151
        });
45560
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   152
    }
6c49259c05f8 8176192: Incorrect usage of Iterator in Java 8 In com.sun.jndi.ldap.EventSupport.removeNamingListener
vtewari
parents:
diff changeset
   153
}