Repository: mina Updated Branches: refs/heads/2.0 f10317619 -> b0ba8a09e
Fixed numerous Sonarlint issues Project: http://git-wip-us.apache.org/repos/asf/mina/repo Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/b0ba8a09 Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/b0ba8a09 Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/b0ba8a09 Branch: refs/heads/2.0 Commit: b0ba8a09e13870d9440236477f3aa365d67baa38 Parents: f103176 Author: Emmanuel Lécharny <elecha...@symas.com> Authored: Thu Dec 8 10:28:41 2016 +0100 Committer: Emmanuel Lécharny <elecha...@symas.com> Committed: Thu Dec 8 10:28:41 2016 +0100 ---------------------------------------------------------------------- .../filter/codec/CumulativeProtocolDecoder.java | 7 ++-- .../mina/filter/codec/ProtocolCodecFilter.java | 43 ++++++++++++++++++++ .../mina/filter/codec/ProtocolCodecSession.java | 8 ++++ .../filter/codec/ProtocolDecoderAdapter.java | 2 + .../filter/codec/ProtocolEncoderAdapter.java | 1 + .../codec/SynchronizedProtocolDecoder.java | 6 +++ .../codec/SynchronizedProtocolEncoder.java | 2 + .../ObjectSerializationCodecFactory.java | 2 + .../ObjectSerializationEncoder.java | 1 + .../ObjectSerializationInputStream.java | 22 ++++++++-- .../ObjectSerializationOutputStream.java | 12 ++++++ .../ConsumeToCrLfDecodingState.java | 5 +++ ...ConsumeToDynamicTerminatorDecodingState.java | 2 + .../ConsumeToEndOfSessionDecodingState.java | 2 + .../ConsumeToTerminatorDecodingState.java | 2 + .../codec/statemachine/CrLfDecodingState.java | 2 + .../statemachine/DecodingStateMachine.java | 12 +++++- .../DecodingStateProtocolDecoder.java | 7 +++- .../statemachine/FixedLengthDecodingState.java | 7 ++++ .../statemachine/IntegerDecodingState.java | 2 + .../statemachine/ShortIntegerDecodingState.java | 22 +++++----- .../statemachine/SingleByteDecodingState.java | 6 ++- .../codec/statemachine/SkippingState.java | 5 +++ .../codec/textline/TextLineCodecFactory.java | 2 + .../filter/codec/textline/TextLineDecoder.java | 5 ++- .../filter/codec/textline/TextLineEncoder.java | 3 +- 26 files changed, 168 insertions(+), 22 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java index e950303..fc3ace9 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/CumulativeProtocolDecoder.java @@ -100,7 +100,7 @@ import org.apache.mina.core.session.IoSession; */ public abstract class CumulativeProtocolDecoder extends ProtocolDecoderAdapter { /** The buffer used to store the data in the session */ - private final AttributeKey BUFFER = new AttributeKey(getClass(), "buffer"); + private static final AttributeKey BUFFER = new AttributeKey(CumulativeProtocolDecoder.class, "buffer"); /** A flag set to true if we handle fragmentation accordingly to the TransportMetadata setting. * It can be set to false if needed (UDP with fragments, for instance). the default value is 'true' @@ -125,6 +125,7 @@ public abstract class CumulativeProtocolDecoder extends ProtocolDecoderAdapter { * if your <tt>doDecode()</tt> returned <tt>true</tt> not * consuming the cumulative buffer. */ + @Override public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { if (transportMetadataFragmentation && !session.getTransportMetadata().hasFragmentation()) { while (in.hasRemaining()) { @@ -147,11 +148,9 @@ public abstract class CumulativeProtocolDecoder extends ProtocolDecoderAdapter { try { buf.put(in); appended = true; - } catch (IllegalStateException e) { + } catch (IllegalStateException | IndexOutOfBoundsException e) { // A user called derivation method (e.g. slice()), // which disables auto-expansion of the parent buffer. - } catch (IndexOutOfBoundsException e) { - // A user disabled auto-expansion. } } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java index 1f47928..97a76ea 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java @@ -98,10 +98,18 @@ public class ProtocolCodecFilter extends IoFilterAdapter { // Create the inner Factory based on the two parameters this.factory = new ProtocolCodecFactory() { + /** + * {@inheritDoc} + */ + @Override public ProtocolEncoder getEncoder(IoSession session) { return encoder; } + /** + * {@inheritDoc} + */ + @Override public ProtocolDecoder getDecoder(IoSession session) { return decoder; } @@ -160,10 +168,18 @@ public class ProtocolCodecFilter extends IoFilterAdapter { // Create the inner factory based on the two parameters. this.factory = new ProtocolCodecFactory() { + /** + * {@inheritDoc} + */ + @Override public ProtocolEncoder getEncoder(IoSession session) throws Exception { return encoder; } + /** + * {@inheritDoc} + */ + @Override public ProtocolDecoder getDecoder(IoSession session) throws Exception { return decoder; } @@ -180,6 +196,9 @@ public class ProtocolCodecFilter extends IoFilterAdapter { return (ProtocolEncoder) session.getAttribute(ENCODER); } + /** + * {@inheritDoc} + */ @Override public void onPreAdd(IoFilterChain parent, String name, NextFilter nextFilter) throws Exception { if (parent.contains(this)) { @@ -188,6 +207,9 @@ public class ProtocolCodecFilter extends IoFilterAdapter { } } + /** + * {@inheritDoc} + */ @Override public void onPostRemove(IoFilterChain parent, String name, NextFilter nextFilter) throws Exception { // Clean everything @@ -260,6 +282,9 @@ public class ProtocolCodecFilter extends IoFilterAdapter { } } + /** + * {@inheritDoc} + */ @Override public void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception { if (writeRequest instanceof EncodedWriteRequest) { @@ -274,6 +299,9 @@ public class ProtocolCodecFilter extends IoFilterAdapter { } } + /** + * {@inheritDoc} + */ @Override public void filterWrite(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception { Object message = writeRequest.getMessage(); @@ -334,6 +362,9 @@ public class ProtocolCodecFilter extends IoFilterAdapter { } } + /** + * {@inheritDoc} + */ @Override public void sessionClosed(NextFilter nextFilter, IoSession session) throws Exception { // Call finishDecode() first when a connection is closed. @@ -365,6 +396,10 @@ public class ProtocolCodecFilter extends IoFilterAdapter { super(encodedMessage, future, destination); } + /** + * {@inheritDoc} + */ + @Override public boolean isEncoded() { return true; } @@ -391,6 +426,10 @@ public class ProtocolCodecFilter extends IoFilterAdapter { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public void flush(NextFilter nextFilter, IoSession session) { Queue<Object> messageQueue = getMessageQueue(); @@ -416,6 +455,10 @@ public class ProtocolCodecFilter extends IoFilterAdapter { destination = writeRequest.getDestination(); } + /** + * {@inheritDoc} + */ + @Override public WriteFuture flush() { Queue<Object> bufferQueue = getMessageQueue(); WriteFuture future = null; http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java index 4ef234a..2b5f89c 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecSession.java @@ -63,12 +63,20 @@ public class ProtocolCodecSession extends DummySession { new UnsupportedOperationException()); private final AbstractProtocolEncoderOutput encoderOutput = new AbstractProtocolEncoderOutput() { + /** + * {@inheritDoc} + */ + @Override public WriteFuture flush() { return notWrittenFuture; } }; private final AbstractProtocolDecoderOutput decoderOutput = new AbstractProtocolDecoderOutput() { + /** + * {@inheritDoc} + */ + @Override public void flush(NextFilter nextFilter, IoSession session) { // Do nothing } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolDecoderAdapter.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolDecoderAdapter.java b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolDecoderAdapter.java index d4eea25..7bb6147 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolDecoderAdapter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolDecoderAdapter.java @@ -34,6 +34,7 @@ public abstract class ProtocolDecoderAdapter implements ProtocolDecoder { * Override this method to deal with the closed connection. * The default implementation does nothing. */ + @Override public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception { // Do nothing } @@ -42,6 +43,7 @@ public abstract class ProtocolDecoderAdapter implements ProtocolDecoder { * Override this method to dispose all resources related with this decoder. * The default implementation does nothing. */ + @Override public void dispose(IoSession session) throws Exception { // Do nothing } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderAdapter.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderAdapter.java b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderAdapter.java index 2f62ba5..dd32171 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderAdapter.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderAdapter.java @@ -32,6 +32,7 @@ public abstract class ProtocolEncoderAdapter implements ProtocolEncoder { * Override this method dispose all resources related with this encoder. * The default implementation does nothing. */ + @Override public void dispose(IoSession session) throws Exception { // Do nothing } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolDecoder.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolDecoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolDecoder.java index 6cb1d69..eda5dbe 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolDecoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolDecoder.java @@ -56,6 +56,10 @@ public class SynchronizedProtocolDecoder implements ProtocolDecoder { return decoder; } + /** + * {@inheritDoc} + */ + @Override public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { synchronized (decoder) { decoder.decode(session, in, out); @@ -65,6 +69,7 @@ public class SynchronizedProtocolDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception { synchronized (decoder) { decoder.finishDecode(session, out); @@ -74,6 +79,7 @@ public class SynchronizedProtocolDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void dispose(IoSession session) throws Exception { synchronized (decoder) { decoder.dispose(session); http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolEncoder.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolEncoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolEncoder.java index 49c7c66..21d40cf 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolEncoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/SynchronizedProtocolEncoder.java @@ -55,6 +55,7 @@ public class SynchronizedProtocolEncoder implements ProtocolEncoder { /** * {@inheritDoc} */ + @Override public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception { synchronized (encoder) { encoder.encode(session, message, out); @@ -64,6 +65,7 @@ public class SynchronizedProtocolEncoder implements ProtocolEncoder { /** * {@inheritDoc} */ + @Override public void dispose(IoSession session) throws Exception { synchronized (encoder) { encoder.dispose(session); http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java index fefe24e..ac91cad 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationCodecFactory.java @@ -58,6 +58,7 @@ public class ObjectSerializationCodecFactory implements ProtocolCodecFactory { /** * {@inheritDoc} */ + @Override public ProtocolEncoder getEncoder(IoSession session) { return encoder; } @@ -65,6 +66,7 @@ public class ObjectSerializationCodecFactory implements ProtocolCodecFactory { /** * {@inheritDoc} */ + @Override public ProtocolDecoder getDecoder(IoSession session) { return decoder; } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java index 93fe4ee..70fdf16 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationEncoder.java @@ -73,6 +73,7 @@ public class ObjectSerializationEncoder extends ProtocolEncoderAdapter { /** * {@inheritDoc} */ + @Override public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception { if (!(message instanceof Serializable)) { throw new NotSerializableException(); http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java index d96ea8f..5da80cf 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationInputStream.java @@ -62,7 +62,9 @@ public class ObjectSerializationInputStream extends InputStream implements Objec } if (classLoader == null) { - classLoader = Thread.currentThread().getContextClassLoader(); + this.classLoader = Thread.currentThread().getContextClassLoader(); + } else { + this.classLoader = classLoader; } if (in instanceof DataInputStream) { @@ -70,8 +72,6 @@ public class ObjectSerializationInputStream extends InputStream implements Objec } else { this.in = new DataInputStream(in); } - - this.classLoader = classLoader; } /** @@ -111,6 +111,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public Object readObject() throws ClassNotFoundException, IOException { int objectSize = in.readInt(); if (objectSize <= 0) { @@ -133,6 +134,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public boolean readBoolean() throws IOException { return in.readBoolean(); } @@ -140,6 +142,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public byte readByte() throws IOException { return in.readByte(); } @@ -147,6 +150,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public char readChar() throws IOException { return in.readChar(); } @@ -154,6 +158,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public double readDouble() throws IOException { return in.readDouble(); } @@ -161,6 +166,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public float readFloat() throws IOException { return in.readFloat(); } @@ -168,6 +174,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public void readFully(byte[] b) throws IOException { in.readFully(b); } @@ -175,6 +182,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public void readFully(byte[] b, int off, int len) throws IOException { in.readFully(b, off, len); } @@ -182,6 +190,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public int readInt() throws IOException { return in.readInt(); } @@ -191,6 +200,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec * @deprecated Bytes are not properly converted to chars */ @Deprecated + @Override public String readLine() throws IOException { return in.readLine(); } @@ -198,6 +208,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public long readLong() throws IOException { return in.readLong(); } @@ -205,6 +216,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public short readShort() throws IOException { return in.readShort(); } @@ -212,6 +224,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public String readUTF() throws IOException { return in.readUTF(); } @@ -219,6 +232,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public int readUnsignedByte() throws IOException { return in.readUnsignedByte(); } @@ -226,6 +240,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public int readUnsignedShort() throws IOException { return in.readUnsignedShort(); } @@ -233,6 +248,7 @@ public class ObjectSerializationInputStream extends InputStream implements Objec /** * {@inheritDoc} */ + @Override public int skipBytes(int n) throws IOException { return in.skipBytes(n); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java index 8243e75..c5e8898 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/serialization/ObjectSerializationOutputStream.java @@ -123,6 +123,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeObject(Object obj) throws IOException { IoBuffer buf = IoBuffer.allocate(64, false); buf.setAutoExpand(true); @@ -140,6 +141,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeBoolean(boolean v) throws IOException { out.writeBoolean(v); } @@ -147,6 +149,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeByte(int v) throws IOException { out.writeByte(v); } @@ -154,6 +157,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeBytes(String s) throws IOException { out.writeBytes(s); } @@ -161,6 +165,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeChar(int v) throws IOException { out.writeChar(v); } @@ -168,6 +173,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeChars(String s) throws IOException { out.writeChars(s); } @@ -175,6 +181,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeDouble(double v) throws IOException { out.writeDouble(v); } @@ -182,6 +189,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeFloat(float v) throws IOException { out.writeFloat(v); } @@ -189,6 +197,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeInt(int v) throws IOException { out.writeInt(v); } @@ -196,6 +205,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeLong(long v) throws IOException { out.writeLong(v); } @@ -203,6 +213,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeShort(int v) throws IOException { out.writeShort(v); } @@ -210,6 +221,7 @@ public class ObjectSerializationOutputStream extends OutputStream implements Obj /** * {@inheritDoc} */ + @Override public void writeUTF(String str) throws IOException { out.writeUTF(str); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToCrLfDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToCrLfDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToCrLfDecodingState.java index ca08ac4..49b9294 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToCrLfDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToCrLfDecodingState.java @@ -51,6 +51,10 @@ public abstract class ConsumeToCrLfDecodingState implements DecodingState { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { int beginPos = in.position(); int limit = in.limit(); @@ -118,6 +122,7 @@ public abstract class ConsumeToCrLfDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { IoBuffer product; // When input contained only CR or LF rather than actual data... http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToDynamicTerminatorDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToDynamicTerminatorDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToDynamicTerminatorDecodingState.java index 0c5ca4b..06f9903 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToDynamicTerminatorDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToDynamicTerminatorDecodingState.java @@ -35,6 +35,7 @@ public abstract class ConsumeToDynamicTerminatorDecodingState implements Decodin /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { int beginPos = in.position(); int terminatorPos = -1; @@ -87,6 +88,7 @@ public abstract class ConsumeToDynamicTerminatorDecodingState implements Decodin /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { IoBuffer product; // When input contained only terminator rather than actual data... http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToEndOfSessionDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToEndOfSessionDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToEndOfSessionDecodingState.java index a9847b8..f53fe21 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToEndOfSessionDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToEndOfSessionDecodingState.java @@ -49,6 +49,7 @@ public abstract class ConsumeToEndOfSessionDecodingState implements DecodingStat /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { if (buffer == null) { buffer = IoBuffer.allocate(256).setAutoExpand(true); @@ -64,6 +65,7 @@ public abstract class ConsumeToEndOfSessionDecodingState implements DecodingStat /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { try { if (buffer == null) { http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToTerminatorDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToTerminatorDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToTerminatorDecodingState.java index ef6538c..a3afd62 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToTerminatorDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ConsumeToTerminatorDecodingState.java @@ -46,6 +46,7 @@ public abstract class ConsumeToTerminatorDecodingState implements DecodingState /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { int terminatorPos = in.indexOf(terminator); @@ -90,6 +91,7 @@ public abstract class ConsumeToTerminatorDecodingState implements DecodingState /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { IoBuffer product; // When input contained only terminator rather than actual data... http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/CrLfDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/CrLfDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/CrLfDecodingState.java index c6fd00b..0d9ce1a 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/CrLfDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/CrLfDecodingState.java @@ -50,6 +50,7 @@ public abstract class CrLfDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { boolean found = false; boolean finished = false; @@ -90,6 +91,7 @@ public abstract class CrLfDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { return finishDecode(false, out); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java index 2acec27..0e8e57f 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java @@ -50,13 +50,21 @@ import org.slf4j.LoggerFactory; public abstract class DecodingStateMachine implements DecodingState { private final Logger log = LoggerFactory.getLogger(DecodingStateMachine.class); - private final List<Object> childProducts = new ArrayList<Object>(); + private final List<Object> childProducts = new ArrayList<>(); private final ProtocolDecoderOutput childOutput = new ProtocolDecoderOutput() { + /** + * {@inheritDoc} + */ + @Override public void flush(NextFilter nextFilter, IoSession session) { // Do nothing } + /** + * {@inheritDoc} + */ + @Override public void write(Object message) { childProducts.add(message); } @@ -99,6 +107,7 @@ public abstract class DecodingStateMachine implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { DecodingState state = getCurrentState(); @@ -146,6 +155,7 @@ public abstract class DecodingStateMachine implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { DecodingState nextState; DecodingState state = getCurrentState(); http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java index 4c6fbbd..86bb5b3 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java @@ -40,7 +40,7 @@ import org.apache.mina.filter.codec.ProtocolDecoderOutput; public class DecodingStateProtocolDecoder implements ProtocolDecoder { private final DecodingState state; - private final Queue<IoBuffer> undecodedBuffers = new ConcurrentLinkedQueue<IoBuffer>(); + private final Queue<IoBuffer> undecodedBuffers = new ConcurrentLinkedQueue<>(); private IoSession session; @@ -61,6 +61,7 @@ public class DecodingStateProtocolDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { if (this.session == null) { this.session = session; @@ -70,6 +71,7 @@ public class DecodingStateProtocolDecoder implements ProtocolDecoder { } undecodedBuffers.offer(in); + for (;;) { IoBuffer b = undecodedBuffers.peek(); if (b == null) { @@ -79,6 +81,7 @@ public class DecodingStateProtocolDecoder implements ProtocolDecoder { int oldRemaining = b.remaining(); state.decode(b, out); int newRemaining = b.remaining(); + if (newRemaining != 0) { if (oldRemaining == newRemaining) { throw new IllegalStateException(DecodingState.class.getSimpleName() + " must " @@ -93,6 +96,7 @@ public class DecodingStateProtocolDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception { state.finishDecode(out); } @@ -100,6 +104,7 @@ public class DecodingStateProtocolDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void dispose(IoSession session) throws Exception { // Do nothing } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/FixedLengthDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/FixedLengthDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/FixedLengthDecodingState.java index 8660931..1993df6 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/FixedLengthDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/FixedLengthDecodingState.java @@ -48,6 +48,7 @@ public abstract class FixedLengthDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { if (buffer == null) { if (in.remaining() >= length) { @@ -56,11 +57,13 @@ public abstract class FixedLengthDecodingState implements DecodingState { IoBuffer product = in.slice(); in.position(in.position() + length); in.limit(limit); + return finishDecode(product, out); } buffer = IoBuffer.allocate(length); buffer.put(in); + return this; } @@ -71,6 +74,7 @@ public abstract class FixedLengthDecodingState implements DecodingState { in.limit(limit); IoBuffer product = this.buffer; this.buffer = null; + return finishDecode(product.flip(), out); } @@ -81,14 +85,17 @@ public abstract class FixedLengthDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { IoBuffer readData; + if (buffer == null) { readData = IoBuffer.allocate(0); } else { readData = buffer.flip(); buffer = null; } + return finishDecode(readData, out); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/IntegerDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/IntegerDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/IntegerDecodingState.java index e21672c..631c1e5 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/IntegerDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/IntegerDecodingState.java @@ -35,6 +35,7 @@ public abstract class IntegerDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { int firstByte = 0; int secondByte = 0; @@ -71,6 +72,7 @@ public abstract class IntegerDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { throw new ProtocolDecoderException("Unexpected end of session while waiting for an integer."); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ShortIntegerDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ShortIntegerDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ShortIntegerDecodingState.java index c81d4c8..c219a90 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ShortIntegerDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/ShortIntegerDecodingState.java @@ -35,22 +35,23 @@ public abstract class ShortIntegerDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { int highByte = 0; while (in.hasRemaining()) { switch (counter) { - case 0: - highByte = in.getUnsigned(); - break; - - case 1: - counter = 0; - return finishDecode((short) ((highByte << 8) | in.getUnsigned()), out); - - default: - throw new InternalError(); + case 0: + highByte = in.getUnsigned(); + break; + + case 1: + counter = 0; + return finishDecode((short) ((highByte << 8) | in.getUnsigned()), out); + + default: + throw new InternalError(); } counter++; @@ -61,6 +62,7 @@ public abstract class ShortIntegerDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { throw new ProtocolDecoderException("Unexpected end of session while waiting for a short integer."); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SingleByteDecodingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SingleByteDecodingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SingleByteDecodingState.java index b1fc5c5..d0866e1 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SingleByteDecodingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SingleByteDecodingState.java @@ -29,7 +29,10 @@ import org.apache.mina.filter.codec.ProtocolDecoderOutput; * @author <a href="http://mina.apache.org">Apache MINA Project</a> */ public abstract class SingleByteDecodingState implements DecodingState { - + /** + * {@inheritDoc} + */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { if (in.hasRemaining()) { return finishDecode(in.get(), out); @@ -41,6 +44,7 @@ public abstract class SingleByteDecodingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { throw new ProtocolDecoderException("Unexpected end of session while waiting for a single byte."); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SkippingState.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SkippingState.java b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SkippingState.java index 59956d4..ed45dec 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SkippingState.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/statemachine/SkippingState.java @@ -35,15 +35,19 @@ public abstract class SkippingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception { int beginPos = in.position(); int limit = in.limit(); + for (int i = beginPos; i < limit; i++) { byte b = in.get(i); + if (!canSkip(b)) { in.position(i); int answer = this.skippedBytes; this.skippedBytes = 0; + return finishDecode(answer); } @@ -57,6 +61,7 @@ public abstract class SkippingState implements DecodingState { /** * {@inheritDoc} */ + @Override public DecodingState finishDecode(ProtocolDecoderOutput out) throws Exception { return finishDecode(skippedBytes); } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java b/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java index b6f7374..9858f3e 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineCodecFactory.java @@ -94,6 +94,7 @@ public class TextLineCodecFactory implements ProtocolCodecFactory { /** * {@inheritDoc} */ + @Override public ProtocolEncoder getEncoder(IoSession session) { return encoder; } @@ -101,6 +102,7 @@ public class TextLineCodecFactory implements ProtocolCodecFactory { /** * {@inheritDoc} */ + @Override public ProtocolDecoder getDecoder(IoSession session) { return decoder; } http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java index a42ee27..ad43b38 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineDecoder.java @@ -40,7 +40,7 @@ import org.apache.mina.filter.codec.RecoverableProtocolDecoderException; * @author <a href="http://mina.apache.org">Apache MINA Project</a> */ public class TextLineDecoder implements ProtocolDecoder { - private final AttributeKey CONTEXT = new AttributeKey(getClass(), "context"); + private static final AttributeKey CONTEXT = new AttributeKey(TextLineDecoder.class, "context"); private final Charset charset; @@ -191,6 +191,7 @@ public class TextLineDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception { Context ctx = getContext(session); @@ -221,6 +222,7 @@ public class TextLineDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception { // Do nothing } @@ -228,6 +230,7 @@ public class TextLineDecoder implements ProtocolDecoder { /** * {@inheritDoc} */ + @Override public void dispose(IoSession session) throws Exception { Context ctx = (Context) session.getAttribute(CONTEXT); http://git-wip-us.apache.org/repos/asf/mina/blob/b0ba8a09/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java ---------------------------------------------------------------------- diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java b/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java index 9c38390..bd19c4d 100644 --- a/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java +++ b/mina-core/src/main/java/org/apache/mina/filter/codec/textline/TextLineEncoder.java @@ -144,6 +144,7 @@ public class TextLineEncoder extends ProtocolEncoderAdapter { /** * {@inheritDoc} */ + @Override public void encode(IoSession session, Object message, ProtocolEncoderOutput out) throws Exception { CharsetEncoder encoder = (CharsetEncoder) session.getAttribute(ENCODER); @@ -152,7 +153,7 @@ public class TextLineEncoder extends ProtocolEncoderAdapter { session.setAttribute(ENCODER, encoder); } - String value = (message == null ? "" : message.toString()); + String value = message == null ? "" : message.toString(); IoBuffer buf = IoBuffer.allocate(value.length()).setAutoExpand(true); buf.putString(value, encoder);