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 2010/02/27 16:23:00 UTC
svn commit: r916965 - in
/mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core:
future/DefaultConnectFuture.java future/DefaultIoFuture.java
polling/AbstractPollingIoConnector.java service/AbstractIoConnector.java
Author: elecharny
Date: Sat Feb 27 15:23:00 2010
New Revision: 916965
URL: http://svn.apache.org/viewvc?rev=916965&view=rev
Log:
o Some more cleanup
o Added some comments in code
Modified:
mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultConnectFuture.java
mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultIoFuture.java
mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java
mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/service/AbstractIoConnector.java
Modified: mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultConnectFuture.java
URL: http://svn.apache.org/viewvc/mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultConnectFuture.java?rev=916965&r1=916964&r2=916965&view=diff
==============================================================================
--- mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultConnectFuture.java (original)
+++ mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultConnectFuture.java Sat Feb 27 15:23:00 2010
@@ -31,9 +31,16 @@
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
public class DefaultConnectFuture<H> extends DefaultIoFuture implements ConnectFuture<H> {
+ /** The Handle we connect to */
private H handle;
+
+ /** The associated connector */
private IoConnector connector;
+
+ /** The maximum delay for the connection establishment */
private long deadline;
+
+ /** The session initializer callback */
private IoSessionInitializer<? extends ConnectFuture<H>> sessionInitializer;
private static final Object CANCELED = new Object();
@@ -53,9 +60,11 @@
public DefaultConnectFuture() {
super(null);
}
+
@Override
public IoSession getSession() {
Object v = getValue();
+
if (v instanceof RuntimeException) {
throw (RuntimeException) v;
} else if (v instanceof Error) {
@@ -83,6 +92,9 @@
return getValue() instanceof IoSession;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isCanceled() {
return getValue() == CANCELED;
}
Modified: mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultIoFuture.java
URL: http://svn.apache.org/viewvc/mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultIoFuture.java?rev=916965&r1=916964&r2=916965&view=diff
==============================================================================
--- mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultIoFuture.java (original)
+++ mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/future/DefaultIoFuture.java Sat Feb 27 15:23:00 2010
@@ -50,7 +50,7 @@
private Object result;
private boolean ready;
private int waiters;
-
+
/**
* Creates a new instance associated with an {@link IoSession}.
*
@@ -175,9 +175,9 @@
synchronized (lock) {
if (ready) {
- return ready;
+ return true;
} else if (timeoutMillis <= 0) {
- return ready;
+ return false;
}
waiters++;
Modified: mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java
URL: http://svn.apache.org/viewvc/mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java?rev=916965&r1=916964&r2=916965&view=diff
==============================================================================
--- mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java (original)
+++ mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/polling/AbstractPollingIoConnector.java Sat Feb 27 15:23:00 2010
@@ -312,18 +312,31 @@
IoSessionInitializer<? extends ConnectFuture> sessionInitializer) {
H handle = null;
boolean success = false;
+
try {
handle = newHandle(localAddress);
+
if (connect(handle, remoteAddress)) {
+ // The connection has been established : it was a blocking handle
+ // We create the Future that will be returned to the user
ConnectFuture future = new DefaultConnectFuture();
+
+ // We create the session
T session = newSession(processor, handle);
+
+ // and we initialize it
initSession(session, future, sessionInitializer);
+
// Forward the remaining process to the IoProcessor.
session.getProcessor().add(session);
success = true;
+
return future;
}
+ // The connect wasn't achieve immediately, but we didn't
+ // get an exception : this is ok, but we have to wait for
+ // the connecton completion.
success = true;
} catch (Exception e) {
return DefaultConnectFuture.newFailedFuture(e);
Modified: mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/service/AbstractIoConnector.java
URL: http://svn.apache.org/viewvc/mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/service/AbstractIoConnector.java?rev=916965&r1=916964&r2=916965&view=diff
==============================================================================
--- mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/service/AbstractIoConnector.java (original)
+++ mina/branches/mina-2-cleanup/core/src/main/java/org/apache/mina/core/service/AbstractIoConnector.java Sat Feb 27 15:23:00 2010
@@ -201,16 +201,14 @@
throw new IllegalArgumentException("remoteAddress is null, cannot connect");
}
- if (!getTransportMetadata().getAddressType().isAssignableFrom(
- remoteAddress.getClass())) {
+ if (!getTransportMetadata().getAddressType().isAssignableFrom(remoteAddress.getClass())) {
throw new IllegalArgumentException("remoteAddress type: "
+ remoteAddress.getClass() + " (expected: "
+ getTransportMetadata().getAddressType() + ")");
}
- if (localAddress != null
- && !getTransportMetadata().getAddressType().isAssignableFrom(
- localAddress.getClass())) {
+ if ((localAddress != null)
+ && !getTransportMetadata().getAddressType().isAssignableFrom(localAddress.getClass())) {
throw new IllegalArgumentException("localAddress type: "
+ localAddress.getClass() + " (expected: "
+ getTransportMetadata().getAddressType() + ")");