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));
                 }
             }
         }