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 } |