Author: elecharny Date: Sun Mar 8 20:17:47 2009 New Revision: 751514 URL: http://svn.apache.org/viewvc?rev=751514&view=rev Log: Closed the Datagram if it can't be bound. This will fix DIRMINA-667.
Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramConnector.java Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramConnector.java URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramConnector.java?rev=751514&r1=751513&r2=751514&view=diff ============================================================================== --- mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramConnector.java (original) +++ mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramConnector.java Sun Mar 8 20:17:47 2009 @@ -123,10 +123,19 @@ protected DatagramChannel newHandle(SocketAddress localAddress) throws Exception { DatagramChannel ch = DatagramChannel.open(); - if (localAddress != null) { - ch.socket().bind(localAddress); + + try { + if (localAddress != null) { + ch.socket().bind(localAddress); + } + + return ch; + } catch (Exception e) { + // If we got an exception while binding the datagram, + // we have to close it otherwise we will loose an handle + ch.close(); + throw e; } - return ch; } @Override