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