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 <[email protected]> Authored: Tue Nov 4 15:31:38 2014 +0100 Committer: Emmanuel Lécharny <[email protected]> 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); } }
