Author: trustin
Date: Thu Jan 11 18:22:34 2007
New Revision: 495468

URL: http://svn.apache.org/viewvc?view=rev&rev=495468
Log:
Resolved issue: DIRMINA-304 (Add a getException() method to ConnectFuture)
* Added ConnectFuture.getException()


Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/support/DefaultConnectFuture.java
    mina/trunk/core/src/test/java/org/apache/mina/common/support/FutureTest.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java?view=diff&rev=495468&r1=495467&r2=495468
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/ConnectFuture.java Thu 
Jan 11 18:22:34 2007
@@ -43,6 +43,14 @@
      * @throws RuntimeIOException if connection attempt failed by an exception
      */
     IoSession getSession() throws RuntimeIOException;
+    
+    /**
+     * Returns the cause of the connection failure.
+     * 
+     * @return <tt>null</tt> if the connect operation is not finished yet,
+     *         or if the connection attempt is successful. 
+     */
+    Throwable getException();
 
     /**
      * Returns <tt>true</tt> if the connect operation is finished successfully.

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/support/DefaultConnectFuture.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/support/DefaultConnectFuture.java?view=diff&rev=495468&r1=495467&r2=495468
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/support/DefaultConnectFuture.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/support/DefaultConnectFuture.java
 Thu Jan 11 18:22:34 2007
@@ -65,6 +65,19 @@
             return ( IoSession ) v;
         }
     }
+    
+    public Throwable getException()
+    {
+        Object v = getValue();
+        if( v instanceof Throwable )
+        {
+            return ( Throwable ) v;
+        }
+        else
+        {
+            return null;
+        }
+    }
 
     public boolean isConnected()
     {

Modified: 
mina/trunk/core/src/test/java/org/apache/mina/common/support/FutureTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/common/support/FutureTest.java?view=diff&rev=495468&r1=495467&r2=495468
==============================================================================
--- 
mina/trunk/core/src/test/java/org/apache/mina/common/support/FutureTest.java 
(original)
+++ 
mina/trunk/core/src/test/java/org/apache/mina/common/support/FutureTest.java 
Thu Jan 11 18:22:34 2007
@@ -64,6 +64,7 @@
         assertFalse( future.isReady() );
         assertFalse( future.isConnected() );
         assertNull( future.getSession() );
+        assertNull( future.getException() );
 
         TestThread thread = new TestThread( future );
         thread.start();
@@ -137,6 +138,7 @@
         assertTrue( future.isReady() );
         assertTrue( future.isConnected() );
         assertEquals( session, future.getSession() );
+        assertNull( future.getException() );
         
         future = new DefaultConnectFuture();
         thread = new TestThread( future );
@@ -147,7 +149,8 @@
         assertTrue( thread.success );
         assertTrue( future.isReady() );
         assertFalse( future.isConnected() );
-        
+        assertTrue( future.getException() instanceof IOException );
+
         try
         {
             future.getSession();


Reply via email to