Repository: mina Updated Branches: refs/heads/2.0 7c080890b -> d95cd1010
o Added some missing Javadoc o Fixed some SonarLint issues Project: http://git-wip-us.apache.org/repos/asf/mina/repo Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/0b2de71b Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/0b2de71b Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/0b2de71b Branch: refs/heads/2.0 Commit: 0b2de71bb2751027a22f4faf2e59559ce668ab83 Parents: c87701f Author: Emmanuel Lécharny <elecha...@symas.com> Authored: Wed Dec 7 19:28:49 2016 +0100 Committer: Emmanuel Lécharny <elecha...@symas.com> Committed: Thu Dec 8 00:03:15 2016 +0100 ---------------------------------------------------------------------- .../main/java/org/apache/mina/core/IoUtil.java | 67 +++++++++++++--- .../apache/mina/core/RuntimeIoException.java | 19 +++++ .../mina/core/session/AbstractIoSession.java | 4 +- .../apache/mina/core/session/AttributeKey.java | 9 ++- .../DefaultIoSessionDataStructureFactory.java | 39 ++++++--- .../apache/mina/core/session/DummySession.java | 56 ++++++++++++- .../core/session/ExpiringSessionRecycler.java | 19 +++++ .../org/apache/mina/core/session/IoSession.java | 1 + .../core/session/IoSessionAttributeMap.java | 1 - .../IoSessionInitializationException.java | 19 +++++ .../session/UnknownMessageTypeException.java | 19 +++++ .../mina/core/write/DefaultWriteRequest.java | 84 ++++++++++++++++++++ .../core/write/NothingWrittenException.java | 56 ++++++++++++- .../apache/mina/core/write/WriteException.java | 20 ++--- .../mina/core/write/WriteRequestWrapper.java | 5 ++ .../mina/core/write/WriteTimeoutException.java | 56 ++++++++++++- .../write/WriteToClosedSessionException.java | 57 ++++++++++++- .../java/org/apache/mina/util/ExpiringMap.java | 18 +++++ 18 files changed, 502 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/IoUtil.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/IoUtil.java b/mina-core/src/main/java/org/apache/mina/core/IoUtil.java index 98def63..b9711bd 100644 --- a/mina-core/src/main/java/org/apache/mina/core/IoUtil.java +++ b/mina-core/src/main/java/org/apache/mina/core/IoUtil.java @@ -39,6 +39,10 @@ import org.apache.mina.core.session.IoSession; public final class IoUtil { private static final IoSession[] EMPTY_SESSIONS = new IoSession[0]; + private IoUtil() { + // Do nothing + } + /** * Writes the specified {@code message} to the specified {@code sessions}. * If the specified {@code message} is an {@link IoBuffer}, the buffer is @@ -49,7 +53,7 @@ public final class IoUtil { * @return The list of WriteFuture created for each broadcasted message */ public static List<WriteFuture> broadcast(Object message, Collection<IoSession> sessions) { - List<WriteFuture> answer = new ArrayList<WriteFuture>(sessions.size()); + List<WriteFuture> answer = new ArrayList<>(sessions.size()); broadcast(message, sessions.iterator(), answer); return answer; } @@ -64,7 +68,7 @@ public final class IoUtil { * @return The list of WriteFuture created for each broadcasted message */ public static List<WriteFuture> broadcast(Object message, Iterable<IoSession> sessions) { - List<WriteFuture> answer = new ArrayList<WriteFuture>(); + List<WriteFuture> answer = new ArrayList<>(); broadcast(message, sessions.iterator(), answer); return answer; } @@ -79,7 +83,7 @@ public final class IoUtil { * @return The list of {@link WriteFuture} for the written messages */ public static List<WriteFuture> broadcast(Object message, Iterator<IoSession> sessions) { - List<WriteFuture> answer = new ArrayList<WriteFuture>(); + List<WriteFuture> answer = new ArrayList<>(); broadcast(message, sessions, answer); return answer; } @@ -98,7 +102,7 @@ public final class IoUtil { sessions = EMPTY_SESSIONS; } - List<WriteFuture> answer = new ArrayList<WriteFuture>(sessions.length); + List<WriteFuture> answer = new ArrayList<>(sessions.length); if (message instanceof IoBuffer) { for (IoSession s : sessions) { answer.add(s.write(((IoBuffer) message).duplicate())); @@ -125,31 +129,78 @@ public final class IoUtil { } } + /** + * Wait on all the {@link IoFuture}s we get, or until one of the {@link IoFuture}s is interrupted + * + * @param futures The {@link IoFuture}s we are waiting on + * @throws InterruptedException If one of the {@link IoFuture} is interrupted + */ public static void await(Iterable<? extends IoFuture> futures) throws InterruptedException { for (IoFuture f : futures) { f.await(); } } + /** + * Wait on all the {@link IoFuture}s we get. This can't get interrupted. + * + * @param futures The {@link IoFuture}s we are waiting on + */ public static void awaitUninterruptably(Iterable<? extends IoFuture> futures) { for (IoFuture f : futures) { f.awaitUninterruptibly(); } } + /** + * Wait on all the {@link IoFuture}s we get, or until one of the {@link IoFuture}s is interrupted + * + * @param futures The {@link IoFuture}s we are waiting on + * @param timeout The maximum time we wait for the {@link IoFuture}s to complete + * @param unit The Time unit to use for the timeout + * @return <tt>TRUE</TT> if all the {@link IoFuture} have been completed, <tt>FALSE</tt> if + * at least one {@link IoFuture} haas been interrupted + * @throws InterruptedException If one of the {@link IoFuture} is interrupted + */ public static boolean await(Iterable<? extends IoFuture> futures, long timeout, TimeUnit unit) throws InterruptedException { return await(futures, unit.toMillis(timeout)); } + /** + * Wait on all the {@link IoFuture}s we get, or until one of the {@link IoFuture}s is interrupted + * + * @param futures The {@link IoFuture}s we are waiting on + * @param timeoutMillis The maximum milliseconds we wait for the {@link IoFuture}s to complete + * @return <tt>TRUE</TT> if all the {@link IoFuture} have been completed, <tt>FALSE</tt> if + * at least one {@link IoFuture} has been interrupted + * @throws InterruptedException If one of the {@link IoFuture} is interrupted + */ public static boolean await(Iterable<? extends IoFuture> futures, long timeoutMillis) throws InterruptedException { return await0(futures, timeoutMillis, true); } + /** + * Wait on all the {@link IoFuture}s we get. + * + * @param futures The {@link IoFuture}s we are waiting on + * @param timeout The maximum time we wait for the {@link IoFuture}s to complete + * @param unit The Time unit to use for the timeout + * @return <tt>TRUE</TT> if all the {@link IoFuture} have been completed, <tt>FALSE</tt> if + * at least one {@link IoFuture} has been interrupted + */ public static boolean awaitUninterruptibly(Iterable<? extends IoFuture> futures, long timeout, TimeUnit unit) { return awaitUninterruptibly(futures, unit.toMillis(timeout)); } + /** + * Wait on all the {@link IoFuture}s we get. + * + * @param futures The {@link IoFuture}s we are waiting on + * @param timeoutMillis The maximum milliseconds we wait for the {@link IoFuture}s to complete + * @return <tt>TRUE</TT> if all the {@link IoFuture} have been completed, <tt>FALSE</tt> if + * at least one {@link IoFuture} has been interrupted + */ public static boolean awaitUninterruptibly(Iterable<? extends IoFuture> futures, long timeoutMillis) { try { return await0(futures, timeoutMillis, false); @@ -165,8 +216,10 @@ public final class IoUtil { boolean lastComplete = true; Iterator<? extends IoFuture> i = futures.iterator(); + while (i.hasNext()) { IoFuture f = i.next(); + do { if (interruptable) { lastComplete = f.await(waitTime); @@ -176,7 +229,7 @@ public final class IoUtil { waitTime = timeoutMillis - (System.currentTimeMillis() - startTime); - if (lastComplete || waitTime <= 0) { + if (waitTime <= 0) { break; } } while (!lastComplete); @@ -188,8 +241,4 @@ public final class IoUtil { return lastComplete && !i.hasNext(); } - - private IoUtil() { - // Do nothing - } } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/RuntimeIoException.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/RuntimeIoException.java b/mina-core/src/main/java/org/apache/mina/core/RuntimeIoException.java index b014b24..88a4b3d 100644 --- a/mina-core/src/main/java/org/apache/mina/core/RuntimeIoException.java +++ b/mina-core/src/main/java/org/apache/mina/core/RuntimeIoException.java @@ -33,18 +33,37 @@ import java.io.IOException; public class RuntimeIoException extends RuntimeException { private static final long serialVersionUID = 9029092241311939548L; + /** + * Create a new RuntimeIoException instance + */ public RuntimeIoException() { super(); } + /** + * Create a new RuntimeIoException instance + * + * @param message The error message + */ public RuntimeIoException(String message) { super(message); } + /** + * Create a new RuntimeIoException instance + * + * @param message The error message + * @param cause The original exception + */ public RuntimeIoException(String message, Throwable cause) { super(message, cause); } + /** + * Create a new RuntimeIoException instance + * + * @param cause The original exception + */ public RuntimeIoException(Throwable cause) { super(cause); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java b/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java index 9eb7567..524dfa0 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java @@ -475,7 +475,7 @@ public abstract class AbstractIoSession implements IoSession { Queue<ReadFuture> readyReadFutures = (Queue<ReadFuture>) getAttribute(READY_READ_FUTURES_KEY); if (readyReadFutures == null) { - readyReadFutures = new ConcurrentLinkedQueue<ReadFuture>(); + readyReadFutures = new ConcurrentLinkedQueue<>(); Queue<ReadFuture> oldReadyReadFutures = (Queue<ReadFuture>) setAttributeIfAbsent(READY_READ_FUTURES_KEY, readyReadFutures); @@ -495,7 +495,7 @@ public abstract class AbstractIoSession implements IoSession { Queue<ReadFuture> waitingReadyReadFutures = (Queue<ReadFuture>) getAttribute(WAITING_READ_FUTURES_KEY); if (waitingReadyReadFutures == null) { - waitingReadyReadFutures = new ConcurrentLinkedQueue<ReadFuture>(); + waitingReadyReadFutures = new ConcurrentLinkedQueue<>(); Queue<ReadFuture> oldWaitingReadyReadFutures = (Queue<ReadFuture>) setAttributeIfAbsent( WAITING_READ_FUTURES_KEY, waitingReadyReadFutures); http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/AttributeKey.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/AttributeKey.java b/mina-core/src/main/java/org/apache/mina/core/session/AttributeKey.java index 75e3ce1..ade3adf 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/AttributeKey.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/AttributeKey.java @@ -67,12 +67,17 @@ public final class AttributeKey implements Serializable { return name; } + /** + * {@inheritDoc} + */ @Override public int hashCode() { - int h = 17 * 37 + ((name == null) ? 0 : name.hashCode()); - return h; + return 17 * 37 + ((name == null) ? 0 : name.hashCode()); } + /** + * {@inheritDoc} + */ @Override public boolean equals(Object obj) { if (this == obj) { http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java b/mina-core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java index c89f404..5c0b1c7 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/DefaultIoSessionDataStructureFactory.java @@ -38,17 +38,24 @@ import org.apache.mina.core.write.WriteRequestQueue; * @author <a href="http://mina.apache.org">Apache MINA Project</a> */ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStructureFactory { - + /** + * {@inheritDoc} + */ + @Override public IoSessionAttributeMap getAttributeMap(IoSession session) throws Exception { return new DefaultIoSessionAttributeMap(); } + /** + * {@inheritDoc} + */ + @Override public WriteRequestQueue getWriteRequestQueue(IoSession session) throws Exception { return new DefaultWriteRequestQueue(); } private static class DefaultIoSessionAttributeMap implements IoSessionAttributeMap { - private final ConcurrentHashMap<Object, Object> attributes = new ConcurrentHashMap<Object, Object>(4); + private final ConcurrentHashMap<Object, Object> attributes = new ConcurrentHashMap<>(4); /** * Default constructor @@ -60,6 +67,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public Object getAttribute(IoSession session, Object key, Object defaultValue) { if (key == null) { throw new IllegalArgumentException("key"); @@ -81,6 +89,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public Object setAttribute(IoSession session, Object key, Object value) { if (key == null) { throw new IllegalArgumentException("key"); @@ -96,6 +105,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public Object setAttributeIfAbsent(IoSession session, Object key, Object value) { if (key == null) { throw new IllegalArgumentException("key"); @@ -111,6 +121,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public Object removeAttribute(IoSession session, Object key) { if (key == null) { throw new IllegalArgumentException("key"); @@ -122,6 +133,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public boolean removeAttribute(IoSession session, Object key, Object value) { if (key == null) { throw new IllegalArgumentException("key"); @@ -141,6 +153,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public boolean replaceAttribute(IoSession session, Object key, Object oldValue, Object newValue) { try { return attributes.replace(key, oldValue, newValue); @@ -153,6 +166,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public boolean containsAttribute(IoSession session, Object key) { return attributes.containsKey(key); } @@ -160,15 +174,17 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public Set<Object> getAttributeKeys(IoSession session) { synchronized (attributes) { - return new HashSet<Object>(attributes.keySet()); + return new HashSet<>(attributes.keySet()); } } /** * {@inheritDoc} */ + @Override public void dispose(IoSession session) throws Exception { // Do nothing } @@ -176,17 +192,12 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct private static class DefaultWriteRequestQueue implements WriteRequestQueue { /** A queue to store incoming write requests */ - private final Queue<WriteRequest> q = new ConcurrentLinkedQueue<WriteRequest>(); - - /** - * Default constructor - */ - public DefaultWriteRequestQueue() { - } + private final Queue<WriteRequest> q = new ConcurrentLinkedQueue<>(); /** * {@inheritDoc} */ + @Override public void dispose(IoSession session) { // Do nothing } @@ -194,6 +205,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public void clear(IoSession session) { q.clear(); } @@ -201,6 +213,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public boolean isEmpty(IoSession session) { return q.isEmpty(); } @@ -208,6 +221,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public void offer(IoSession session, WriteRequest writeRequest) { q.offer(writeRequest); } @@ -215,6 +229,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public WriteRequest poll(IoSession session) { WriteRequest answer = q.poll(); @@ -227,6 +242,9 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct return answer; } + /** + * {@inheritDoc} + */ @Override public String toString() { return q.toString(); @@ -235,6 +253,7 @@ public class DefaultIoSessionDataStructureFactory implements IoSessionDataStruct /** * {@inheritDoc} */ + @Override public int size() { return q.size(); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/DummySession.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/DummySession.java b/mina-core/src/main/java/org/apache/mina/core/session/DummySession.java index 3b842f1..c28e187 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/DummySession.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/DummySession.java @@ -91,30 +91,47 @@ public class DummySession extends AbstractIoSession { // Initialize dummy service. new AbstractIoAcceptor(new AbstractIoSessionConfig() { }, new Executor() { + @Override public void execute(Runnable command) { // Do nothing } }) { - + /** + * {@inheritDoc} + */ @Override protected Set<SocketAddress> bindInternal(List<? extends SocketAddress> localAddresses) throws Exception { throw new UnsupportedOperationException(); } + /** + * {@inheritDoc} + */ @Override protected void unbind0(List<? extends SocketAddress> localAddresses) throws Exception { throw new UnsupportedOperationException(); } + /** + * {@inheritDoc} + */ + @Override public IoSession newSession(SocketAddress remoteAddress, SocketAddress localAddress) { throw new UnsupportedOperationException(); } + /** + * {@inheritDoc} + */ + @Override public TransportMetadata getTransportMetadata() { return TRANSPORT_METADATA; } + /** + * {@inheritDoc} + */ @Override protected void dispose0() throws Exception { } @@ -122,16 +139,25 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public IoSessionConfig getSessionConfig() { return sessionConfig; } }); processor = new IoProcessor<IoSession>() { + /** + * {@inheritDoc} + */ + @Override public void add(IoSession session) { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public void flush(IoSession session) { DummySession s = (DummySession) session; WriteRequest req = s.getWriteRequestQueue().poll(session); @@ -156,6 +182,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public void write(IoSession session, WriteRequest writeRequest) { WriteRequestQueue writeRequestQueue = session.getWriteRequestQueue(); @@ -166,24 +193,44 @@ public class DummySession extends AbstractIoSession { } } + /** + * {@inheritDoc} + */ + @Override public void remove(IoSession session) { if (!session.getCloseFuture().isClosed()) { session.getFilterChain().fireSessionClosed(); } } + /** + * {@inheritDoc} + */ + @Override public void updateTrafficControl(IoSession session) { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public void dispose() { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public boolean isDisposed() { return false; } + /** + * {@inheritDoc} + */ + @Override public boolean isDisposing() { return false; } @@ -204,6 +251,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public IoSessionConfig getConfig() { return config; } @@ -224,6 +272,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public IoFilterChain getFilterChain() { return filterChain; } @@ -231,6 +280,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public IoHandler getHandler() { return handler; } @@ -251,6 +301,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public SocketAddress getLocalAddress() { return localAddress; } @@ -258,6 +309,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public SocketAddress getRemoteAddress() { return remoteAddress; } @@ -292,6 +344,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public IoService getService() { return service; } @@ -320,6 +373,7 @@ public class DummySession extends AbstractIoSession { /** * {@inheritDoc} */ + @Override public TransportMetadata getTransportMetadata() { return transportMetadata; } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/ExpiringSessionRecycler.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/ExpiringSessionRecycler.java b/mina-core/src/main/java/org/apache/mina/core/session/ExpiringSessionRecycler.java index 8c9edc8..54d58a2 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/ExpiringSessionRecycler.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/ExpiringSessionRecycler.java @@ -95,22 +95,41 @@ public class ExpiringSessionRecycler implements IoSessionRecycler { sessionMap.remove(session.getRemoteAddress()); } + /** + * Stop the thread from monitoring the map + */ public void stopExpiring() { mapExpirer.stopExpiring(); } + /** + * @return The session expiration time in second + */ public int getExpirationInterval() { return sessionMap.getExpirationInterval(); } + /** + * @return The session time-to-live in second + */ public int getTimeToLive() { return sessionMap.getTimeToLive(); } + /** + * Set the interval in which a session will live in the map before it is removed. + * + * @param expirationInterval The session expiration time in seconds + */ public void setExpirationInterval(int expirationInterval) { sessionMap.setExpirationInterval(expirationInterval); } + /** + * Update the value for the time-to-live + * + * @param timeToLive The time-to-live (seconds) + */ public void setTimeToLive(int timeToLive) { sessionMap.setTimeToLive(timeToLive); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/IoSession.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/IoSession.java b/mina-core/src/main/java/org/apache/mina/core/session/IoSession.java index 3a7bc73..9ed094c 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/IoSession.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/IoSession.java @@ -180,6 +180,7 @@ public interface IoSession { * @return The associated CloseFuture * @deprecated Use either the closeNow() or the flushAndClose() methods */ + @Deprecated CloseFuture close(boolean immediately); /** http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/IoSessionAttributeMap.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/IoSessionAttributeMap.java b/mina-core/src/main/java/org/apache/mina/core/session/IoSessionAttributeMap.java index 8b8d6c1..0892a31 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/IoSessionAttributeMap.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/IoSessionAttributeMap.java @@ -29,7 +29,6 @@ import java.util.Set; * @author <a href="http://mina.apache.org">Apache MINA Project</a> */ public interface IoSessionAttributeMap { - /** * @return the value of user defined attribute associated with the * specified key. If there's no such attribute, the specified default http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/IoSessionInitializationException.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/IoSessionInitializationException.java b/mina-core/src/main/java/org/apache/mina/core/session/IoSessionInitializationException.java index f5fc3b7..cae2582 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/IoSessionInitializationException.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/IoSessionInitializationException.java @@ -28,18 +28,37 @@ package org.apache.mina.core.session; public class IoSessionInitializationException extends RuntimeException { private static final long serialVersionUID = -1205810145763696189L; + /** + * Creates a new IoSessionInitializationException instance. + */ public IoSessionInitializationException() { super(); } + /** + * Creates a new IoSessionInitializationException instance. + * + * @param message The detail message + * @param cause The Exception's cause + */ public IoSessionInitializationException(String message, Throwable cause) { super(message, cause); } + /** + * Creates a new IoSessionInitializationException instance. + * + * @param message The detail message + */ public IoSessionInitializationException(String message) { super(message); } + /** + * Creates a new IoSessionInitializationException instance. + * + * @param cause The Exception's cause + */ public IoSessionInitializationException(Throwable cause) { super(cause); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/session/UnknownMessageTypeException.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/session/UnknownMessageTypeException.java b/mina-core/src/main/java/org/apache/mina/core/session/UnknownMessageTypeException.java index 200b916..97cdf4a 100644 --- a/mina-core/src/main/java/org/apache/mina/core/session/UnknownMessageTypeException.java +++ b/mina-core/src/main/java/org/apache/mina/core/session/UnknownMessageTypeException.java @@ -27,18 +27,37 @@ package org.apache.mina.core.session; public class UnknownMessageTypeException extends RuntimeException { private static final long serialVersionUID = 3257290227428047158L; + /** + * Creates a new UnknownMessageTypeException instance. + */ public UnknownMessageTypeException() { // Do nothing } + /** + * Creates a new UnknownMessageTypeException instance. + * + * @param message The detail message + * @param cause The Exception's cause + */ public UnknownMessageTypeException(String message, Throwable cause) { super(message, cause); } + /** + * Creates a new UnknownMessageTypeException instance. + * + * @param message The detail message + */ public UnknownMessageTypeException(String message) { super(message); } + /** + * Creates a new UnknownMessageTypeException instance. + * + * @param cause The Exception's cause + */ public UnknownMessageTypeException(Throwable cause) { super(cause); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java b/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java index f03bbd7..1d1e5fb 100644 --- a/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java +++ b/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java @@ -37,66 +37,130 @@ public class DefaultWriteRequest implements WriteRequest { /** An empty FUTURE */ private static final WriteFuture UNUSED_FUTURE = new WriteFuture() { + /** + * {@inheritDoc} + */ + @Override public boolean isWritten() { return false; } + /** + * {@inheritDoc} + */ + @Override public void setWritten() { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public IoSession getSession() { return null; } + /** + * {@inheritDoc} + */ + @Override public void join() { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public boolean join(long timeoutInMillis) { return true; } + /** + * {@inheritDoc} + */ + @Override public boolean isDone() { return true; } + /** + * {@inheritDoc} + */ + @Override public WriteFuture addListener(IoFutureListener<?> listener) { throw new IllegalStateException("You can't add a listener to a dummy future."); } + /** + * {@inheritDoc} + */ + @Override public WriteFuture removeListener(IoFutureListener<?> listener) { throw new IllegalStateException("You can't add a listener to a dummy future."); } + /** + * {@inheritDoc} + */ + @Override public WriteFuture await() throws InterruptedException { return this; } + /** + * {@inheritDoc} + */ + @Override public boolean await(long timeout, TimeUnit unit) throws InterruptedException { return true; } + /** + * {@inheritDoc} + */ + @Override public boolean await(long timeoutMillis) throws InterruptedException { return true; } + /** + * {@inheritDoc} + */ + @Override public WriteFuture awaitUninterruptibly() { return this; } + /** + * {@inheritDoc} + */ + @Override public boolean awaitUninterruptibly(long timeout, TimeUnit unit) { return true; } + /** + * {@inheritDoc} + */ + @Override public boolean awaitUninterruptibly(long timeoutMillis) { return true; } + /** + * {@inheritDoc} + */ + @Override public Throwable getException() { return null; } + /** + * {@inheritDoc} + */ + @Override public void setException(Throwable cause) { // Do nothing } @@ -151,18 +215,34 @@ public class DefaultWriteRequest implements WriteRequest { this.destination = destination; } + /** + * {@inheritDoc} + */ + @Override public WriteFuture getFuture() { return future; } + /** + * {@inheritDoc} + */ + @Override public Object getMessage() { return message; } + /** + * {@inheritDoc} + */ + @Override public WriteRequest getOriginalRequest() { return this; } + /** + * {@inheritDoc} + */ + @Override public SocketAddress getDestination() { return destination; } @@ -190,6 +270,10 @@ public class DefaultWriteRequest implements WriteRequest { return sb.toString(); } + /** + * {@inheritDoc} + */ + @Override public boolean isEncoded() { return false; } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/write/NothingWrittenException.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/write/NothingWrittenException.java b/mina-core/src/main/java/org/apache/mina/core/write/NothingWrittenException.java index 66e228e..6ccf9c7 100644 --- a/mina-core/src/main/java/org/apache/mina/core/write/NothingWrittenException.java +++ b/mina-core/src/main/java/org/apache/mina/core/write/NothingWrittenException.java @@ -31,34 +31,82 @@ public class NothingWrittenException extends WriteException { private static final long serialVersionUID = -6331979307737691005L; + /** + * Create a new NothingWrittenException instance + * + * @param requests The {@link WriteRequest}s that haven't been written + * @param message The error message + * @param cause The original exception + */ public NothingWrittenException(Collection<WriteRequest> requests, String message, Throwable cause) { super(requests, message, cause); } - public NothingWrittenException(Collection<WriteRequest> requests, String s) { - super(requests, s); + /** + * Create a new NothingWrittenException instance + * + * @param requests The {@link WriteRequest}s that haven't been written + * @param message The error message + */ + public NothingWrittenException(Collection<WriteRequest> requests, String message) { + super(requests, message); } + /** + * Create a new NothingWrittenException instance + * + * @param requests The {@link WriteRequest} that haven't been written + * @param cause The original exception + */ public NothingWrittenException(Collection<WriteRequest> requests, Throwable cause) { super(requests, cause); } + /** + * Create a new NothingWrittenException instance + * + * @param requests The {@link WriteRequest} that haven't been written + */ public NothingWrittenException(Collection<WriteRequest> requests) { super(requests); } + /** + * Create a new NothingWrittenException instance + * + * @param request The {@link WriteRequest} that hasn't been written + * @param message The error message + * @param cause The original exception + */ public NothingWrittenException(WriteRequest request, String message, Throwable cause) { super(request, message, cause); } - public NothingWrittenException(WriteRequest request, String s) { - super(request, s); + /** + * Create a new NothingWrittenException instance + * + * @param request The {@link WriteRequest} that hasn't been written + * @param message The error message + */ + public NothingWrittenException(WriteRequest request, String message) { + super(request, message); } + /** + * Create a new NothingWrittenException instance + * + * @param request The {@link WriteRequest} that hasn't been written + * @param cause The original exception + */ public NothingWrittenException(WriteRequest request, Throwable cause) { super(request, cause); } + /** + * Create a new NothingWrittenException instance + * + * @param request The {@link WriteRequest} that hasn't been written + */ public NothingWrittenException(WriteRequest request) { super(request); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/write/WriteException.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/write/WriteException.java b/mina-core/src/main/java/org/apache/mina/core/write/WriteException.java index 193432b..5985e76 100644 --- a/mina-core/src/main/java/org/apache/mina/core/write/WriteException.java +++ b/mina-core/src/main/java/org/apache/mina/core/write/WriteException.java @@ -42,7 +42,7 @@ public class WriteException extends IOException { private final List<WriteRequest> requests; /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param request The associated {@link WriteRequest} */ @@ -52,7 +52,7 @@ public class WriteException extends IOException { } /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param request The associated {@link WriteRequest} * @param message The detail message @@ -63,7 +63,7 @@ public class WriteException extends IOException { } /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param request The associated {@link WriteRequest} * @param message The detail message @@ -76,7 +76,7 @@ public class WriteException extends IOException { } /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param request The associated {@link WriteRequest} * @param cause The Exception's cause @@ -87,7 +87,7 @@ public class WriteException extends IOException { } /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param requests The collection of {@link WriteRequest}s */ @@ -97,7 +97,7 @@ public class WriteException extends IOException { } /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param requests The collection of {@link WriteRequest}s * @param message The detail message @@ -108,7 +108,7 @@ public class WriteException extends IOException { } /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param requests The collection of {@link WriteRequest}s * @param message The detail message @@ -121,7 +121,7 @@ public class WriteException extends IOException { } /** - * Creates a new exception. + * Creates a new WriteException instance. * * @param requests The collection of {@link WriteRequest}s * @param cause The Exception's cause @@ -155,7 +155,7 @@ public class WriteException extends IOException { } // Create a list of requests removing duplicates. - Set<WriteRequest> newRequests = new MapBackedSet<WriteRequest>(new LinkedHashMap<WriteRequest, Boolean>()); + Set<WriteRequest> newRequests = new MapBackedSet<>(new LinkedHashMap<WriteRequest, Boolean>()); for (WriteRequest r : requests) { newRequests.add(r.getOriginalRequest()); @@ -169,7 +169,7 @@ public class WriteException extends IOException { throw new IllegalArgumentException("request"); } - List<WriteRequest> requests = new ArrayList<WriteRequest>(1); + List<WriteRequest> requests = new ArrayList<>(1); requests.add(request.getOriginalRequest()); return Collections.unmodifiableList(requests); http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/write/WriteRequestWrapper.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/write/WriteRequestWrapper.java b/mina-core/src/main/java/org/apache/mina/core/write/WriteRequestWrapper.java index 0941d43..0abea69 100644 --- a/mina-core/src/main/java/org/apache/mina/core/write/WriteRequestWrapper.java +++ b/mina-core/src/main/java/org/apache/mina/core/write/WriteRequestWrapper.java @@ -47,6 +47,7 @@ public class WriteRequestWrapper implements WriteRequest { /** * {@inheritDoc} */ + @Override public SocketAddress getDestination() { return parentRequest.getDestination(); } @@ -54,6 +55,7 @@ public class WriteRequestWrapper implements WriteRequest { /** * {@inheritDoc} */ + @Override public WriteFuture getFuture() { return parentRequest.getFuture(); } @@ -61,6 +63,7 @@ public class WriteRequestWrapper implements WriteRequest { /** * {@inheritDoc} */ + @Override public Object getMessage() { return parentRequest.getMessage(); } @@ -68,6 +71,7 @@ public class WriteRequestWrapper implements WriteRequest { /** * {@inheritDoc} */ + @Override public WriteRequest getOriginalRequest() { return parentRequest.getOriginalRequest(); } @@ -90,6 +94,7 @@ public class WriteRequestWrapper implements WriteRequest { /** * {@inheritDoc} */ + @Override public boolean isEncoded() { return false; } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/write/WriteTimeoutException.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/write/WriteTimeoutException.java b/mina-core/src/main/java/org/apache/mina/core/write/WriteTimeoutException.java index 9ee214c..3fd3e60 100644 --- a/mina-core/src/main/java/org/apache/mina/core/write/WriteTimeoutException.java +++ b/mina-core/src/main/java/org/apache/mina/core/write/WriteTimeoutException.java @@ -32,34 +32,82 @@ import org.apache.mina.core.session.IoSessionConfig; public class WriteTimeoutException extends WriteException { private static final long serialVersionUID = 3906931157944579121L; + /** + * Create a new WriteTimeoutException instance + * + * @param requests The {@link WriteRequest}s for which we have had a timeout + * @param message The error message + * @param cause The original exception + */ public WriteTimeoutException(Collection<WriteRequest> requests, String message, Throwable cause) { super(requests, message, cause); } - public WriteTimeoutException(Collection<WriteRequest> requests, String s) { - super(requests, s); + /** + * Create a new WriteTimeoutException instance + * + * @param requests The {@link WriteRequest}s for which we have had a timeout + * @param message The error message + */ + public WriteTimeoutException(Collection<WriteRequest> requests, String message) { + super(requests, message); } + /** + * Create a new WriteTimeoutException instance + * + * @param requests The {@link WriteRequest}s for which we have had a timeout + * @param cause The original exception + */ public WriteTimeoutException(Collection<WriteRequest> requests, Throwable cause) { super(requests, cause); } + /** + * Create a new WriteTimeoutException instance + * + * @param requests The {@link WriteRequest}s for which we have had a timeout + */ public WriteTimeoutException(Collection<WriteRequest> requests) { super(requests); } + /** + * Create a new WriteTimeoutException instance + * + * @param request The {@link WriteRequest} for which we have had a timeout + * @param message The error message + * @param cause The original exception + */ public WriteTimeoutException(WriteRequest request, String message, Throwable cause) { super(request, message, cause); } - public WriteTimeoutException(WriteRequest request, String s) { - super(request, s); + /** + * Create a new WriteTimeoutException instance + * + * @param request The {@link WriteRequest} for which we have had a timeout + * @param message The error message + */ + public WriteTimeoutException(WriteRequest request, String message) { + super(request, message); } + /** + * Create a new WriteTimeoutException instance + * + * @param request The {@link WriteRequest} for which we have had a timeout + * @param cause The original exception + */ public WriteTimeoutException(WriteRequest request, Throwable cause) { super(request, cause); } + /** + * Create a new WriteTimeoutException instance + * + * @param request The {@link WriteRequest} for which we have had a timeout + */ public WriteTimeoutException(WriteRequest request) { super(request); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/core/write/WriteToClosedSessionException.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/core/write/WriteToClosedSessionException.java b/mina-core/src/main/java/org/apache/mina/core/write/WriteToClosedSessionException.java index 620dbe0..13c240c 100644 --- a/mina-core/src/main/java/org/apache/mina/core/write/WriteToClosedSessionException.java +++ b/mina-core/src/main/java/org/apache/mina/core/write/WriteToClosedSessionException.java @@ -31,34 +31,83 @@ public class WriteToClosedSessionException extends WriteException { private static final long serialVersionUID = 5550204573739301393L; + /** + * Create a new WriteToClosedSessionException instance + * + * @param requests The {@link WriteRequest}s which have been written on a closed session + * @param message The error message + * @param cause The original exception + */ public WriteToClosedSessionException(Collection<WriteRequest> requests, String message, Throwable cause) { super(requests, message, cause); } - public WriteToClosedSessionException(Collection<WriteRequest> requests, String s) { - super(requests, s); + /** + * Create a new WriteToClosedSessionException instance + * + * @param requests The {@link WriteRequest}s which have been written on a closed session + * @param message The error message + */ + public WriteToClosedSessionException(Collection<WriteRequest> requests, String message) { + super(requests, message); } + /** + * Create a new WriteToClosedSessionException instance + * + * @param requests The {@link WriteRequest}s which have been written on a closed session + * @param cause The original exception + */ public WriteToClosedSessionException(Collection<WriteRequest> requests, Throwable cause) { super(requests, cause); } + /** + * Create a new WriteToClosedSessionException instance + * + * @param requests The {@link WriteRequest}s which have been written on a closed session + */ public WriteToClosedSessionException(Collection<WriteRequest> requests) { super(requests); } + /** + * Create a new WriteToClosedSessionException instance + * + * @param request The {@link WriteRequest} which has been written on a closed session + * @param message The error message + * @param cause The original exception + */ public WriteToClosedSessionException(WriteRequest request, String message, Throwable cause) { super(request, message, cause); } - public WriteToClosedSessionException(WriteRequest request, String s) { - super(request, s); + /** + * Create a new WriteToClosedSessionException instance + * + * @param request The {@link WriteRequest} which has been written on a closed session + * @param message The error message + */ + public WriteToClosedSessionException(WriteRequest request, String message) { + super(request, message); } + /** + * Create a new WriteToClosedSessionException instance + * + * @param request The {@link WriteRequest} which has been written on a closed session + * @param cause The original exception + */ public WriteToClosedSessionException(WriteRequest request, Throwable cause) { super(request, cause); } + /** + * Create a new WriteToClosedSessionException instance + * + * @param request The {@link WriteRequest} which has been written on a closed session + + */ public WriteToClosedSessionException(WriteRequest request) { super(request); } http://git-wip-us.apache.org/repos/asf/mina/blob/0b2de71b/mina-core/src/main/java/org/apache/mina/util/ExpiringMap.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/util/ExpiringMap.java b/mina-core/src/main/java/org/apache/mina/util/ExpiringMap.java index b3fd9e0..3243a61 100644 --- a/mina-core/src/main/java/org/apache/mina/util/ExpiringMap.java +++ b/mina-core/src/main/java/org/apache/mina/util/ExpiringMap.java @@ -181,18 +181,36 @@ public class ExpiringMap<K, V> implements Map<K, V> { return expirer; } + /** + * Get the interval in which an object will live in the map before it is removed. + * + * @return The expiration time in second + */ public int getExpirationInterval() { return expirer.getExpirationInterval(); } + /** + * @return the Time-to-live value in seconds. + */ public int getTimeToLive() { return expirer.getTimeToLive(); } + /** + * Set the interval in which an object will live in the map before it is removed. + * + * @param expirationInterval The expiration time in seconds + */ public void setExpirationInterval(int expirationInterval) { expirer.setExpirationInterval(expirationInterval); } + /** + * Update the value for the time-to-live + * + * @param timeToLive The time-to-live (seconds) + */ public void setTimeToLive(int timeToLive) { expirer.setTimeToLive(timeToLive); }