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 2014/11/04 15:32:01 UTC
[2/2] git commit: o Added the missing Javadoc o Removed the
ExceptionHolder inner class in DefaultReadFuture : it's useless o A few
typoes fix
o Added the missing Javadoc
o Removed the ExceptionHolder inner class in DefaultReadFuture : it's
useless
o A few typoes fix
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/bdad876b
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/bdad876b
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/bdad876b
Branch: refs/heads/2.0
Commit: bdad876b214c8a6f68382e29a2b145e69225c72a
Parents: 4adb1cd
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Tue Nov 4 15:31:38 2014 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Tue Nov 4 15:31:38 2014 +0100
----------------------------------------------------------------------
.../mina/core/future/DefaultCloseFuture.java | 20 +++++
.../mina/core/future/DefaultReadFuture.java | 81 ++++++++++++++------
.../mina/core/future/DefaultWriteFuture.java | 21 ++++-
.../mina/core/service/AbstractIoService.java | 6 ++
4 files changed, 101 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina/blob/bdad876b/mina-core/src/main/java/org/apache/mina/core/future/DefaultCloseFuture.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/future/DefaultCloseFuture.java b/mina-core/src/main/java/org/apache/mina/core/future/DefaultCloseFuture.java
index 3121e99..8378694 100644
--- a/mina-core/src/main/java/org/apache/mina/core/future/DefaultCloseFuture.java
+++ b/mina-core/src/main/java/org/apache/mina/core/future/DefaultCloseFuture.java
@@ -29,11 +29,16 @@ import org.apache.mina.core.session.IoSession;
public class DefaultCloseFuture extends DefaultIoFuture implements CloseFuture {
/**
* Creates a new instance.
+ *
+ * @param session The associated session
*/
public DefaultCloseFuture(IoSession session) {
super(session);
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isClosed() {
if (isDone()) {
return ((Boolean) getValue()).booleanValue();
@@ -42,25 +47,40 @@ public class DefaultCloseFuture extends DefaultIoFuture implements CloseFuture {
}
}
+ /**
+ * {@inheritDoc}
+ */
public void setClosed() {
setValue(Boolean.TRUE);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public CloseFuture await() throws InterruptedException {
return (CloseFuture) super.await();
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public CloseFuture awaitUninterruptibly() {
return (CloseFuture) super.awaitUninterruptibly();
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public CloseFuture addListener(IoFutureListener<?> listener) {
return (CloseFuture) super.addListener(listener);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public CloseFuture removeListener(IoFutureListener<?> listener) {
return (CloseFuture) super.removeListener(listener);
http://git-wip-us.apache.org/repos/asf/mina/blob/bdad876b/mina-core/src/main/java/org/apache/mina/core/future/DefaultReadFuture.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/future/DefaultReadFuture.java b/mina-core/src/main/java/org/apache/mina/core/future/DefaultReadFuture.java
index fb1756f..97199c1 100644
--- a/mina-core/src/main/java/org/apache/mina/core/future/DefaultReadFuture.java
+++ b/mina-core/src/main/java/org/apache/mina/core/future/DefaultReadFuture.java
@@ -30,34 +30,39 @@ import org.apache.mina.core.session.IoSession;
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
public class DefaultReadFuture extends DefaultIoFuture implements ReadFuture {
-
+ /** A static object used when the session is closed */
private static final Object CLOSED = new Object();
/**
* Creates a new instance.
+ *
+ * @param session The associated session
*/
public DefaultReadFuture(IoSession session) {
super(session);
}
+ /**
+ * {@inheritDoc}
+ */
public Object getMessage() {
if (isDone()) {
Object v = getValue();
+
if (v == CLOSED) {
return null;
}
- if (v instanceof ExceptionHolder) {
- v = ((ExceptionHolder) v).exception;
- if (v instanceof RuntimeException) {
- throw (RuntimeException) v;
- }
- if (v instanceof Error) {
- throw (Error) v;
- }
- if (v instanceof IOException || v instanceof Exception) {
- throw new RuntimeIoException((Exception) v);
- }
+ if (v instanceof RuntimeException) {
+ throw (RuntimeException) v;
+ }
+
+ if (v instanceof Error) {
+ throw (Error) v;
+ }
+
+ if (v instanceof IOException || v instanceof Exception) {
+ throw new RuntimeIoException((Exception) v);
}
return v;
@@ -66,75 +71,103 @@ public class DefaultReadFuture extends DefaultIoFuture implements ReadFuture {
return null;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isRead() {
if (isDone()) {
Object v = getValue();
- return (v != CLOSED && !(v instanceof ExceptionHolder));
+
+ return (v != CLOSED && !(v instanceof Throwable));
}
+
return false;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isClosed() {
if (isDone()) {
return getValue() == CLOSED;
}
+
return false;
}
+ /**
+ * {@inheritDoc}
+ */
public Throwable getException() {
if (isDone()) {
Object v = getValue();
- if (v instanceof ExceptionHolder) {
- return ((ExceptionHolder) v).exception;
+
+ if (v instanceof Throwable) {
+ return (Throwable)v;
}
}
+
return null;
}
+ /**
+ * {@inheritDoc}
+ */
public void setClosed() {
setValue(CLOSED);
}
+ /**
+ * {@inheritDoc}
+ */
public void setRead(Object message) {
if (message == null) {
throw new IllegalArgumentException("message");
}
+
setValue(message);
}
+ /**
+ * {@inheritDoc}
+ */
public void setException(Throwable exception) {
if (exception == null) {
throw new IllegalArgumentException("exception");
}
- setValue(new ExceptionHolder(exception));
+ setValue(exception);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public ReadFuture await() throws InterruptedException {
return (ReadFuture) super.await();
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public ReadFuture awaitUninterruptibly() {
return (ReadFuture) super.awaitUninterruptibly();
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public ReadFuture addListener(IoFutureListener<?> listener) {
return (ReadFuture) super.addListener(listener);
}
+ /**
+ * {@inheritDoc}
+ */
@Override
public ReadFuture removeListener(IoFutureListener<?> listener) {
return (ReadFuture) super.removeListener(listener);
}
-
- private static class ExceptionHolder {
- private final Throwable exception;
-
- private ExceptionHolder(Throwable exception) {
- this.exception = exception;
- }
- }
}
http://git-wip-us.apache.org/repos/asf/mina/blob/bdad876b/mina-core/src/main/java/org/apache/mina/core/future/DefaultWriteFuture.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/future/DefaultWriteFuture.java b/mina-core/src/main/java/org/apache/mina/core/future/DefaultWriteFuture.java
index 2e7b2bb..59377e2 100644
--- a/mina-core/src/main/java/org/apache/mina/core/future/DefaultWriteFuture.java
+++ b/mina-core/src/main/java/org/apache/mina/core/future/DefaultWriteFuture.java
@@ -29,24 +29,35 @@ import org.apache.mina.core.session.IoSession;
public class DefaultWriteFuture extends DefaultIoFuture implements WriteFuture {
/**
* Returns a new {@link DefaultWriteFuture} which is already marked as 'written'.
+ *
+ * @param session The associated session
+ * @return A new future for a written message
*/
public static WriteFuture newWrittenFuture(IoSession session) {
- DefaultWriteFuture unwrittenFuture = new DefaultWriteFuture(session);
- unwrittenFuture.setWritten();
- return unwrittenFuture;
+ DefaultWriteFuture writtenFuture = new DefaultWriteFuture(session);
+ writtenFuture.setWritten();
+
+ return writtenFuture;
}
/**
* Returns a new {@link DefaultWriteFuture} which is already marked as 'not written'.
+ *
+ * @param session The associated session
+ * @param cause The reason why the message has not be written
+ * @return A new future for not written message
*/
public static WriteFuture newNotWrittenFuture(IoSession session, Throwable cause) {
DefaultWriteFuture unwrittenFuture = new DefaultWriteFuture(session);
unwrittenFuture.setException(cause);
+
return unwrittenFuture;
}
/**
* Creates a new instance.
+ *
+ * @param session The associated session
*/
public DefaultWriteFuture(IoSession session) {
super(session);
@@ -58,10 +69,12 @@ public class DefaultWriteFuture extends DefaultIoFuture implements WriteFuture {
public boolean isWritten() {
if (isDone()) {
Object v = getValue();
+
if (v instanceof Boolean) {
return ((Boolean) v).booleanValue();
}
}
+
return false;
}
@@ -71,10 +84,12 @@ public class DefaultWriteFuture extends DefaultIoFuture implements WriteFuture {
public Throwable getException() {
if (isDone()) {
Object v = getValue();
+
if (v instanceof Throwable) {
return (Throwable) v;
}
}
+
return null;
}
http://git-wip-us.apache.org/repos/asf/mina/blob/bdad876b/mina-core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/service/AbstractIoService.java b/mina-core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
index 6a09763..adb5edf 100644
--- a/mina-core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
+++ b/mina-core/src/main/java/org/apache/mina/core/service/AbstractIoService.java
@@ -487,6 +487,11 @@ public abstract class AbstractIoService implements IoService {
// Do nothing. Extended class might add some specific code
}
+ /**
+ * A specific class used to
+ * @author elecharny
+ *
+ */
protected static class ServiceOperationFuture extends DefaultIoFuture {
public ServiceOperationFuture() {
super(null);
@@ -512,6 +517,7 @@ public abstract class AbstractIoService implements IoService {
if (exception == null) {
throw new IllegalArgumentException("exception");
}
+
setValue(exception);
}
}