You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2009/03/08 21:17:48 UTC

svn commit: r751514 - /mina/trunk/core/src/main/java/org/apache/mina/transport/socket/nio/NioDatagramConnector.java

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