You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2015/12/26 20:22:20 UTC
[2/2] mina git commit: Many fixes for various errors found by
SonarQube
Many fixes for various errors found by SonarQube
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/101a32e7
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/101a32e7
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/101a32e7
Branch: refs/heads/2.0
Commit: 101a32e7e815b402134e14d6c40c635c5824deb9
Parents: 9054286
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Sat Dec 26 20:21:55 2015 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Sat Dec 26 20:21:55 2015 +0100
----------------------------------------------------------------------
.../apache/mina/core/MinaBenchmarkServer.java | 8 +--
.../mina/core/buffer/AbstractIoBuffer.java | 25 ++++++++-
.../statemachine/IntegerDecodingState.java | 44 ++++++++-------
.../statemachine/ShortIntegerDecodingState.java | 7 ++-
.../org/apache/mina/proxy/ProxyConnector.java | 2 +-
.../handlers/socks/Socks5LogicHandler.java | 2 +-
.../main/java/org/apache/mina/util/Base64.java | 58 ++++++++++----------
.../util/byteaccess/CompositeByteArray.java | 12 ++--
8 files changed, 91 insertions(+), 67 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/mina-benchmarks/src/test/java/org/apache/mina/core/MinaBenchmarkServer.java
----------------------------------------------------------------------
diff --git a/mina-benchmarks/src/test/java/org/apache/mina/core/MinaBenchmarkServer.java b/mina-benchmarks/src/test/java/org/apache/mina/core/MinaBenchmarkServer.java
index 0b27db7..f71a90f 100755
--- a/mina-benchmarks/src/test/java/org/apache/mina/core/MinaBenchmarkServer.java
+++ b/mina-benchmarks/src/test/java/org/apache/mina/core/MinaBenchmarkServer.java
@@ -74,19 +74,19 @@ public class MinaBenchmarkServer implements BenchmarkServer {
while (buffer.remaining() > 0) {
switch (state) {
case WAIT_FOR_FIRST_BYTE_LENGTH:
- length = (buffer.get() & 255) << 24;
+ length = (buffer.get() & 0xFF) << 24;
state = State.WAIT_FOR_SECOND_BYTE_LENGTH;
break;
case WAIT_FOR_SECOND_BYTE_LENGTH:
- length += (buffer.get() & 255) << 16;
+ length += (buffer.get() & 0xFF) << 16;
state = State.WAIT_FOR_THIRD_BYTE_LENGTH;
break;
case WAIT_FOR_THIRD_BYTE_LENGTH:
- length += (buffer.get() & 255) << 8;
+ length += (buffer.get() & 0xFF) << 8;
state = State.WAIT_FOR_FOURTH_BYTE_LENGTH;
break;
case WAIT_FOR_FOURTH_BYTE_LENGTH:
- length += (buffer.get() & 255);
+ length += (buffer.get() & 0xFF);
state = State.READING;
if ((length == 0) && (buffer.remaining() == 0)) {
session.write(ACK.slice());
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java b/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
index 183a115..4ce6425 100644
--- a/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
+++ b/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
@@ -1430,6 +1430,7 @@ public abstract class AbstractIoBuffer extends IoBuffer {
int b1 = getUnsigned(index);
int b2 = getUnsigned(index + 1);
int b3 = getUnsigned(index + 2);
+
if (ByteOrder.BIG_ENDIAN.equals(order())) {
return b1 << 16 | b2 << 8 | b3;
}
@@ -2167,8 +2168,10 @@ public abstract class AbstractIoBuffer extends IoBuffer {
int oldLimit = limit();
limit(position() + length);
+ ObjectInputStream in = null;
+
try {
- ObjectInputStream in = new ObjectInputStream(asInputStream()) {
+ in = new ObjectInputStream(asInputStream()) {
@Override
protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {
int type = read();
@@ -2207,6 +2210,14 @@ public abstract class AbstractIoBuffer extends IoBuffer {
} catch (IOException e) {
throw new BufferDataException(e);
} finally {
+ try {
+ if (in != null) {
+ in.close();
+ }
+ } catch (IOException ioe) {
+ // Nothing to do
+ }
+
limit(oldLimit);
}
}
@@ -2218,8 +2229,10 @@ public abstract class AbstractIoBuffer extends IoBuffer {
public IoBuffer putObject(Object o) {
int oldPos = position();
skip(4); // Make a room for the length field.
+ ObjectOutputStream out = null;
+
try {
- ObjectOutputStream out = new ObjectOutputStream(asOutputStream()) {
+ out = new ObjectOutputStream(asOutputStream()) {
@Override
protected void writeClassDescriptor(ObjectStreamClass desc) throws IOException {
Class<?> clazz = desc.forClass();
@@ -2238,6 +2251,14 @@ public abstract class AbstractIoBuffer extends IoBuffer {
out.flush();
} catch (IOException e) {
throw new BufferDataException(e);
+ } finally {
+ try {
+ if (out != null) {
+ out.close();
+ }
+ } catch (IOException ioe) {
+ // Nothing to do
+ }
}
// Fill the length field
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/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 5fcbf97..e21672c 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
@@ -30,36 +30,38 @@ import org.apache.mina.filter.codec.ProtocolDecoderOutput;
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
public abstract class IntegerDecodingState implements DecodingState {
-
- private int firstByte;
-
- private int secondByte;
-
- private int thirdByte;
-
private int counter;
/**
* {@inheritDoc}
*/
public DecodingState decode(IoBuffer in, ProtocolDecoderOutput out) throws Exception {
+ int firstByte = 0;
+ int secondByte = 0;
+ int thirdByte = 0;
+
while (in.hasRemaining()) {
switch (counter) {
- case 0:
- firstByte = in.getUnsigned();
- break;
- case 1:
- secondByte = in.getUnsigned();
- break;
- case 2:
- thirdByte = in.getUnsigned();
- break;
- case 3:
- counter = 0;
- return finishDecode((firstByte << 24) | (secondByte << 16) | (thirdByte << 8) | in.getUnsigned(), out);
- default:
- throw new InternalError();
+ case 0:
+ firstByte = in.getUnsigned();
+ break;
+
+ case 1:
+ secondByte = in.getUnsigned();
+ break;
+
+ case 2:
+ thirdByte = in.getUnsigned();
+ break;
+
+ case 3:
+ counter = 0;
+ return finishDecode((firstByte << 24) | (secondByte << 16) | (thirdByte << 8) | in.getUnsigned(), out);
+
+ default:
+ throw new InternalError();
}
+
counter++;
}
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/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 a03d8c7..c81d4c8 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
@@ -30,24 +30,25 @@ import org.apache.mina.filter.codec.ProtocolDecoderOutput;
* @author <a href="http://mina.apache.org">Apache MINA Project</a>
*/
public abstract class ShortIntegerDecodingState implements DecodingState {
-
- private int highByte;
-
private int counter;
/**
* {@inheritDoc}
*/
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();
}
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/mina-core/src/main/java/org/apache/mina/proxy/ProxyConnector.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/proxy/ProxyConnector.java b/mina-core/src/main/java/org/apache/mina/proxy/ProxyConnector.java
index a1ab0b8..916b34e 100644
--- a/mina-core/src/main/java/org/apache/mina/proxy/ProxyConnector.java
+++ b/mina-core/src/main/java/org/apache/mina/proxy/ProxyConnector.java
@@ -213,7 +213,7 @@ public class ProxyConnector extends AbstractIoConnector {
*
* @param connector the connector to use
*/
- private final void setConnector(final SocketConnector connector) {
+ private void setConnector(final SocketConnector connector) {
if (connector == null) {
throw new IllegalArgumentException("connector cannot be null");
}
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/mina-core/src/main/java/org/apache/mina/proxy/handlers/socks/Socks5LogicHandler.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/proxy/handlers/socks/Socks5LogicHandler.java b/mina-core/src/main/java/org/apache/mina/proxy/handlers/socks/Socks5LogicHandler.java
index 0de96fd..fce364f 100644
--- a/mina-core/src/main/java/org/apache/mina/proxy/handlers/socks/Socks5LogicHandler.java
+++ b/mina-core/src/main/java/org/apache/mina/proxy/handlers/socks/Socks5LogicHandler.java
@@ -354,7 +354,7 @@ public class Socks5LogicHandler extends AbstractSocksLogicHandler {
if (buf.get(0) != 0x01) {
throw new IllegalStateException("Authentication failed");
}
- if (buf.get(1) == 0x00FF) {
+ if ((buf.get(1) & 0x00FF) == 0x00FF) {
throw new IllegalStateException("Authentication failed: GSS API Security Context Failure");
}
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/mina-core/src/main/java/org/apache/mina/util/Base64.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/Base64.java b/mina-core/src/main/java/org/apache/mina/util/Base64.java
index cb50d60..caa59a7 100644
--- a/mina-core/src/main/java/org/apache/mina/util/Base64.java
+++ b/mina-core/src/main/java/org/apache/mina/util/Base64.java
@@ -278,27 +278,27 @@ public class Base64 {
k = (byte) (b1 & 0x03);
byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0);
- byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0);
- byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) : (byte) ((b3) >> 6 ^ 0xfc);
-
- encodedData[encodedIndex] = lookUpBase64Alphabet[val1];
- encodedData[encodedIndex + 1] = lookUpBase64Alphabet[val2 | (k << 4)];
- encodedData[encodedIndex + 2] = lookUpBase64Alphabet[(l << 2) | val3];
- encodedData[encodedIndex + 3] = lookUpBase64Alphabet[b3 & 0x3f];
-
- encodedIndex += 4;
-
- // If we are chunking, let's put a chunk separator down.
- if (isChunked) {
- // this assumes that CHUNK_SIZE % 4 == 0
- if (encodedIndex == nextSeparatorIndex) {
- System.arraycopy(CHUNK_SEPARATOR, 0, encodedData, encodedIndex, CHUNK_SEPARATOR.length);
- chunksSoFar++;
- nextSeparatorIndex = (CHUNK_SIZE * (chunksSoFar + 1)) + (chunksSoFar * CHUNK_SEPARATOR.length);
- encodedIndex += CHUNK_SEPARATOR.length;
+ byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0);
+ byte val3 = ((b3 & SIGN) == 0) ? (byte) (b3 >> 6) : (byte) ((b3) >> 6 ^ 0xfc);
+
+ encodedData[encodedIndex] = lookUpBase64Alphabet[val1];
+ encodedData[encodedIndex + 1] = lookUpBase64Alphabet[val2 | (k << 4)];
+ encodedData[encodedIndex + 2] = lookUpBase64Alphabet[(l << 2) | val3];
+ encodedData[encodedIndex + 3] = lookUpBase64Alphabet[b3 & 0x3f];
+
+ encodedIndex += 4;
+
+ // If we are chunking, let's put a chunk separator down.
+ if (isChunked) {
+ // this assumes that CHUNK_SIZE % 4 == 0
+ if (encodedIndex == nextSeparatorIndex) {
+ System.arraycopy(CHUNK_SEPARATOR, 0, encodedData, encodedIndex, CHUNK_SEPARATOR.length);
+ chunksSoFar++;
+ nextSeparatorIndex = (CHUNK_SIZE * (chunksSoFar + 1)) + (chunksSoFar * CHUNK_SEPARATOR.length);
+ encodedIndex += CHUNK_SEPARATOR.length;
+ }
}
}
- }
// form integral number of 6-bit groups
dataIndex = i * 3;
@@ -307,10 +307,10 @@ public class Base64 {
b1 = binaryData[dataIndex];
k = (byte) (b1 & 0x03);
byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0);
- encodedData[encodedIndex] = lookUpBase64Alphabet[val1];
- encodedData[encodedIndex + 1] = lookUpBase64Alphabet[k << 4];
- encodedData[encodedIndex + 2] = PAD;
- encodedData[encodedIndex + 3] = PAD;
+ encodedData[encodedIndex] = lookUpBase64Alphabet[val1];
+ encodedData[encodedIndex + 1] = lookUpBase64Alphabet[k << 4];
+ encodedData[encodedIndex + 2] = PAD;
+ encodedData[encodedIndex + 3] = PAD;
} else if (fewerThan24bits == SIXTEENBIT) {
b1 = binaryData[dataIndex];
@@ -319,12 +319,12 @@ public class Base64 {
k = (byte) (b1 & 0x03);
byte val1 = ((b1 & SIGN) == 0) ? (byte) (b1 >> 2) : (byte) ((b1) >> 2 ^ 0xc0);
- byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0);
-
- encodedData[encodedIndex] = lookUpBase64Alphabet[val1];
- encodedData[encodedIndex + 1] = lookUpBase64Alphabet[val2 | (k << 4)];
- encodedData[encodedIndex + 2] = lookUpBase64Alphabet[l << 2];
- encodedData[encodedIndex + 3] = PAD;
+ byte val2 = ((b2 & SIGN) == 0) ? (byte) (b2 >> 4) : (byte) ((b2) >> 4 ^ 0xf0);
+
+ encodedData[encodedIndex] = lookUpBase64Alphabet[val1];
+ encodedData[encodedIndex + 1] = lookUpBase64Alphabet[val2 | (k << 4)];
+ encodedData[encodedIndex + 2] = lookUpBase64Alphabet[l << 2];
+ encodedData[encodedIndex + 3] = PAD;
}
if (isChunked) {
http://git-wip-us.apache.org/repos/asf/mina/blob/101a32e7/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java b/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
index 6c67d8e..36cf17a 100644
--- a/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
+++ b/mina-core/src/main/java/org/apache/mina/util/byteaccess/CompositeByteArray.java
@@ -48,22 +48,22 @@ public final class CompositeByteArray extends AbstractByteArray {
/**
* Called when the first component in the composite is entered by the cursor.
*/
- public void enteredFirstComponent(int componentIndex, ByteArray component);
+ void enteredFirstComponent(int componentIndex, ByteArray component);
/**
* Called when the next component in the composite is entered by the cursor.
*/
- public void enteredNextComponent(int componentIndex, ByteArray component);
+ void enteredNextComponent(int componentIndex, ByteArray component);
/**
* Called when the previous component in the composite is entered by the cursor.
*/
- public void enteredPreviousComponent(int componentIndex, ByteArray component);
+ void enteredPreviousComponent(int componentIndex, ByteArray component);
/**
* Called when the last component in the composite is entered by the cursor.
*/
- public void enteredLastComponent(int componentIndex, ByteArray component);
+ void enteredLastComponent(int componentIndex, ByteArray component);
}
/**
@@ -985,9 +985,9 @@ public final class CompositeByteArray extends AbstractByteArray {
byte b0 = get();
byte b1 = get();
if (order.equals(ByteOrder.BIG_ENDIAN)) {
- return (char) ((b0 << 8) | (b1 << 0));
+ return (char)((b0 << 8) | (b1 & 0xFF));
} else {
- return (char) ((b1 << 8) | (b0 << 0));
+ return (char)((b1 << 8) | (b0 & 0xFF));
}
}
}