corba/src/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelAcceptorImpl.java
changeset 7059 79caba0caf4f
parent 5555 b2b5ed3f0d0d
child 18307 8bf60b58675b
equal deleted inserted replaced
6605:f960f117f162 7059:79caba0caf4f
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    31 import java.net.Socket;
    31 import java.net.Socket;
    32 import java.nio.channels.SelectableChannel;
    32 import java.nio.channels.SelectableChannel;
    33 import java.nio.channels.SelectionKey;
    33 import java.nio.channels.SelectionKey;
    34 import java.nio.channels.ServerSocketChannel;
    34 import java.nio.channels.ServerSocketChannel;
    35 import java.nio.channels.SocketChannel;
    35 import java.nio.channels.SocketChannel;
    36 import java.security.AccessController;
       
    37 import java.security.PrivilegedAction;
       
    38 import java.util.Collection;
       
    39 import java.util.Iterator;
    36 import java.util.Iterator;
    40 import java.util.LinkedList;
       
    41 
       
    42 import org.omg.CORBA.CompletionStatus;
       
    43 import org.omg.CORBA.INTERNAL;
       
    44 
    37 
    45 import com.sun.corba.se.pept.broker.Broker;
    38 import com.sun.corba.se.pept.broker.Broker;
    46 import com.sun.corba.se.pept.encoding.InputObject;
    39 import com.sun.corba.se.pept.encoding.InputObject;
    47 import com.sun.corba.se.pept.encoding.OutputObject;
    40 import com.sun.corba.se.pept.encoding.OutputObject;
    48 import com.sun.corba.se.pept.protocol.MessageMediator;
    41 import com.sun.corba.se.pept.protocol.MessageMediator;
    59 import com.sun.corba.se.spi.ior.iiop.IIOPAddress ;
    52 import com.sun.corba.se.spi.ior.iiop.IIOPAddress ;
    60 import com.sun.corba.se.spi.ior.iiop.IIOPFactories;
    53 import com.sun.corba.se.spi.ior.iiop.IIOPFactories;
    61 import com.sun.corba.se.spi.ior.iiop.IIOPProfileTemplate ;
    54 import com.sun.corba.se.spi.ior.iiop.IIOPProfileTemplate ;
    62 import com.sun.corba.se.spi.ior.iiop.GIOPVersion ;
    55 import com.sun.corba.se.spi.ior.iiop.GIOPVersion ;
    63 import com.sun.corba.se.spi.ior.iiop.AlternateIIOPAddressComponent;
    56 import com.sun.corba.se.spi.ior.iiop.AlternateIIOPAddressComponent;
    64 import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;
       
    65 import com.sun.corba.se.spi.logging.CORBALogDomains;
    57 import com.sun.corba.se.spi.logging.CORBALogDomains;
    66 import com.sun.corba.se.spi.monitoring.LongMonitoredAttributeBase;
       
    67 import com.sun.corba.se.spi.monitoring.MonitoringConstants;
       
    68 import com.sun.corba.se.spi.monitoring.MonitoringFactories;
       
    69 import com.sun.corba.se.spi.monitoring.MonitoredObject;
       
    70 import com.sun.corba.se.spi.orb.ORB;
    58 import com.sun.corba.se.spi.orb.ORB;
    71 import com.sun.corba.se.spi.orbutil.threadpool.Work;
    59 import com.sun.corba.se.spi.orbutil.threadpool.Work;
    72 import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
    60 import com.sun.corba.se.spi.protocol.CorbaMessageMediator;
    73 import com.sun.corba.se.spi.transport.CorbaAcceptor;
    61 import com.sun.corba.se.spi.transport.CorbaAcceptor;
    74 import com.sun.corba.se.spi.transport.CorbaConnection;
    62 import com.sun.corba.se.spi.transport.CorbaConnection;
    75 import com.sun.corba.se.spi.transport.CorbaContactInfo;
       
    76 import com.sun.corba.se.spi.transport.SocketInfo;
    63 import com.sun.corba.se.spi.transport.SocketInfo;
    77 import com.sun.corba.se.spi.transport.SocketOrChannelAcceptor;
    64 import com.sun.corba.se.spi.transport.SocketOrChannelAcceptor;
    78 
    65 
    79 import com.sun.corba.se.impl.encoding.CDRInputObject;
    66 import com.sun.corba.se.impl.encoding.CDRInputObject;
    80 import com.sun.corba.se.impl.encoding.CDROutputObject;
    67 import com.sun.corba.se.impl.encoding.CDROutputObject;
    81 import com.sun.corba.se.impl.logging.ORBUtilSystemException;
    68 import com.sun.corba.se.impl.logging.ORBUtilSystemException;
    82 import com.sun.corba.se.impl.oa.poa.Policies; // REVISIT impl/poa specific
    69 import com.sun.corba.se.impl.oa.poa.Policies; // REVISIT impl/poa specific
    83 import com.sun.corba.se.impl.orbutil.ORBConstants;
    70 import com.sun.corba.se.impl.orbutil.ORBConstants;
    84 import com.sun.corba.se.impl.orbutil.ORBUtility;
    71 import com.sun.corba.se.impl.orbutil.ORBUtility;
    85 import com.sun.corba.se.impl.ior.iiop.JavaSerializationComponent;
       
    86 
    72 
    87 // BEGIN Legacy support.
    73 // BEGIN Legacy support.
    88 import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;
    74 import com.sun.corba.se.spi.legacy.connection.LegacyServerSocketEndPointInfo;
    89 // END Legacy support.
    75 // END Legacy support.
    90 
    76 
   440         try {
   426         try {
   441             if (orb.transportDebugFlag) {
   427             if (orb.transportDebugFlag) {
   442                 dprint(".doWork->: " + this);
   428                 dprint(".doWork->: " + this);
   443             }
   429             }
   444             if (selectionKey.isAcceptable()) {
   430             if (selectionKey.isAcceptable()) {
   445                 AccessController.doPrivileged(new PrivilegedAction() {
       
   446                     public java.lang.Object run() {
       
   447                         accept();
   431                         accept();
   448                         return null;
       
   449                     }
       
   450                 });
       
   451             } else {
   432             } else {
   452                 if (orb.transportDebugFlag) {
   433                 if (orb.transportDebugFlag) {
   453                     dprint(".doWork: ! selectionKey.isAcceptable: " + this);
   434                     dprint(".doWork: ! selectionKey.isAcceptable: " + this);
   454                 }
   435                 }
   455             }
   436             }