src/java.corba/share/classes/com/sun/corba/se/impl/transport/SocketOrChannelConnectionImpl.java

Print this page

        

@@ -365,11 +365,14 @@
                     dprint(".readBits: " + this +
                            ": sendMessageError: IOException: " + e, e);
                 }
             }
             // REVISIT - make sure reader thread is killed.
-            orb.getTransportManager().getSelector(0).unregisterForEvent(this);
+            Selector selector = orb.getTransportManager().getSelector(0);
+            if (selector != null) {
+                selector.unregisterForEvent(this);
+            }
             // Notify anyone waiting.
             purgeCalls(wrapper.connectionAbort(ex), true, false);
             // REVISIT
             //keepRunning = false;
             // REVISIT - if this is called after purgeCalls then

@@ -799,11 +802,13 @@
                     dprint(".close: exception: " + this, ex);
                 }
             }
             try {
                 Selector selector = orb.getTransportManager().getSelector(0);
+                if (selector != null) {
                 selector.unregisterForEvent(this);
+                }
                 if (socketChannel != null) {
                     socketChannel.close();
                 }
                 socket.close();
             } catch (IOException e) {

@@ -822,11 +827,13 @@
     public void closeConnectionResources() {
            if (orb.transportDebugFlag) {
                dprint(".closeConnectionResources->: " + this);
            }
            Selector selector = orb.getTransportManager().getSelector(0);
+           if (selector != null) {
            selector.unregisterForEvent(this);
+           }
            try {
              if (socketChannel != null)
               socketChannel.close() ;
                 if (socket != null && !socket.isClosed())
                 socket.close() ;