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() ;