Cleaning up a few FindBugs reported minor issues.
diff --git a/release-notes/VERSION b/release-notes/VERSION
index 3e6d6ad..23aec73 100644
--- a/release-notes/VERSION
+++ b/release-notes/VERSION
@@ -14,6 +14,10 @@
=== Releases ===
------------------------------------------------------------------------
+2.7.6 (not yet released)
+
+- Clean up of FindBugs reported possible issues.
+
2.7.5 (11-Jun-2016)
#280: FilteringGeneratorDelegate.writeUTF8String() should delegate to writeUTF8String()
diff --git a/src/main/java/com/fasterxml/jackson/core/Base64Variant.java b/src/main/java/com/fasterxml/jackson/core/Base64Variant.java
index 045a316..84f27dc 100644
--- a/src/main/java/com/fasterxml/jackson/core/Base64Variant.java
+++ b/src/main/java/com/fasterxml/jackson/core/Base64Variant.java
@@ -76,19 +76,21 @@
* Symbolic name of variant; used for diagnostics/debugging.
*<p>
* Note that this is the only non-transient field; used when reading
- * back from serialized state
+ * back from serialized state.
+ *<p>
+ * Also: must not be private, accessed from `BaseVariants`
*/
- protected final String _name;
+ final String _name;
/**
* Whether this variant uses padding or not.
*/
- protected final transient boolean _usesPadding;
+ private final transient boolean _usesPadding;
/**
* Characted used for padding, if any ({@link #PADDING_CHAR_NONE} if not).
*/
- protected final transient char _paddingChar;
+ private final transient char _paddingChar;
/**
* Maximum number of encoded base64 characters to output during encoding
@@ -98,7 +100,7 @@
* Note: for some output modes (when writing attributes) linefeeds may
* need to be avoided, and this value ignored.
*/
- protected final transient int _maxLineLength;
+ private final transient int _maxLineLength;
/*
/**********************************************************
@@ -219,7 +221,11 @@
public int decodeBase64Byte(byte b)
{
int ch = (int) b;
- return (ch <= 127) ? _asciiToBase64[ch] : BASE64_VALUE_INVALID;
+ // note: cast retains sign, so it's from -128 to +127
+ if (ch < 0) {
+ return BASE64_VALUE_INVALID;
+ }
+ return _asciiToBase64[ch];
}
/*
diff --git a/src/main/java/com/fasterxml/jackson/core/JsonEncoding.java b/src/main/java/com/fasterxml/jackson/core/JsonEncoding.java
index ee7d619..f561ecf 100644
--- a/src/main/java/com/fasterxml/jackson/core/JsonEncoding.java
+++ b/src/main/java/com/fasterxml/jackson/core/JsonEncoding.java
@@ -23,11 +23,11 @@
UTF32_LE("UTF-32LE", false, 32)
;
- protected final String _javaName;
+ private final String _javaName;
- protected final boolean _bigEndian;
+ private final boolean _bigEndian;
- protected final int _bits;
+ private final int _bits;
JsonEncoding(String javaName, boolean bigEndian, int bits)
{
diff --git a/src/main/java/com/fasterxml/jackson/core/JsonLocation.java b/src/main/java/com/fasterxml/jackson/core/JsonLocation.java
index 40e3f96..264f739 100644
--- a/src/main/java/com/fasterxml/jackson/core/JsonLocation.java
+++ b/src/main/java/com/fasterxml/jackson/core/JsonLocation.java
@@ -11,7 +11,7 @@
* within input streams.
*/
public class JsonLocation
- implements java.io.Serializable // as per [JACKSON-168]
+ implements java.io.Serializable
{
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/fasterxml/jackson/core/base/GeneratorBase.java b/src/main/java/com/fasterxml/jackson/core/base/GeneratorBase.java
index 149a0c1..d1b97a0 100644
--- a/src/main/java/com/fasterxml/jackson/core/base/GeneratorBase.java
+++ b/src/main/java/com/fasterxml/jackson/core/base/GeneratorBase.java
@@ -34,12 +34,12 @@
// // // Constants for validation messages (since 2.6)
- protected final String WRITE_BINARY = "write a binary value";
- protected final String WRITE_BOOLEAN = "write a boolean value";
- protected final String WRITE_NULL = "write a null";
- protected final String WRITE_NUMBER = "write a number";
- protected final String WRITE_RAW = "write a raw (unencoded) value";
- protected final String WRITE_STRING = "write a string";
+ protected final static String WRITE_BINARY = "write a binary value";
+ protected final static String WRITE_BOOLEAN = "write a boolean value";
+ protected final static String WRITE_NULL = "write a null";
+ protected final static String WRITE_NUMBER = "write a number";
+ protected final static String WRITE_RAW = "write a raw (unencoded) value";
+ protected final static String WRITE_STRING = "write a string";
/*
/**********************************************************
diff --git a/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java b/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java
index bf68cd7..d395b11 100644
--- a/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java
+++ b/src/main/java/com/fasterxml/jackson/core/filter/FilteringParserDelegate.java
@@ -281,7 +281,8 @@
JsonToken t = delegate.nextToken();
if (t == null) {
// no strict need to close, since we have no state here
- return (_currToken = t);
+ _currToken = t;
+ return t;
}
// otherwise... to include or not?
@@ -453,7 +454,8 @@
while (true) {
JsonToken t = delegate.nextToken();
if (t == null) { // is this even legal?
- return (_currToken = t);
+ _currToken = t;
+ return t;
}
TokenFilter f;
diff --git a/src/main/java/com/fasterxml/jackson/core/io/SerializedString.java b/src/main/java/com/fasterxml/jackson/core/io/SerializedString.java
index ac79308..8f32b5c 100644
--- a/src/main/java/com/fasterxml/jackson/core/io/SerializedString.java
+++ b/src/main/java/com/fasterxml/jackson/core/io/SerializedString.java
@@ -17,6 +17,8 @@
public class SerializedString
implements SerializableString, java.io.Serializable
{
+ private static final long serialVersionUID = 1L;
+
protected final String _value;
/* 13-Dec-2010, tatu: Whether use volatile or not is actually an important
diff --git a/src/main/java/com/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper.java b/src/main/java/com/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper.java
index d37079b..6bbe412 100644
--- a/src/main/java/com/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper.java
+++ b/src/main/java/com/fasterxml/jackson/core/json/ByteSourceJsonBootstrapper.java
@@ -342,7 +342,7 @@
}
return fullMatchStrength;
}
-
+
private static int skipSpace(InputAccessor acc) throws IOException
{
if (!acc.hasMoreBytes()) {
@@ -350,7 +350,7 @@
}
return skipSpace(acc, acc.nextByte());
}
-
+
private static int skipSpace(InputAccessor acc, byte b) throws IOException
{
while (true) {
@@ -362,10 +362,9 @@
return -1;
}
b = acc.nextByte();
- ch = (int) b & 0xFF;
}
}
-
+
/*
/**********************************************************
/* Internal methods, parsing
diff --git a/src/main/java/com/fasterxml/jackson/core/json/JsonGeneratorImpl.java b/src/main/java/com/fasterxml/jackson/core/json/JsonGeneratorImpl.java
index 1270eae..1ede298 100644
--- a/src/main/java/com/fasterxml/jackson/core/json/JsonGeneratorImpl.java
+++ b/src/main/java/com/fasterxml/jackson/core/json/JsonGeneratorImpl.java
@@ -29,7 +29,7 @@
* (first 128 character codes), used for single-byte UTF-8 characters.
*/
protected final static int[] sOutputEscapes = CharTypes.get7BitOutputEscapes();
-
+
/*
/**********************************************************
/* Configuration, basic I/O
diff --git a/src/main/java/com/fasterxml/jackson/core/json/JsonReadContext.java b/src/main/java/com/fasterxml/jackson/core/json/JsonReadContext.java
index 3520b2b..cf09633 100644
--- a/src/main/java/com/fasterxml/jackson/core/json/JsonReadContext.java
+++ b/src/main/java/com/fasterxml/jackson/core/json/JsonReadContext.java
@@ -201,7 +201,7 @@
private void _checkDup(DupDetector dd, String name) throws JsonProcessingException {
if (dd.isDup(name)) {
Object src = dd.getSource();
- throw new JsonParseException(((src instanceof JsonGenerator) ? ((JsonParser) src) : null),
+ throw new JsonParseException(((src instanceof JsonParser) ? ((JsonParser) src) : null),
"Duplicate field '"+name+"'");
}
}
diff --git a/src/main/java/com/fasterxml/jackson/core/json/ReaderBasedJsonParser.java b/src/main/java/com/fasterxml/jackson/core/json/ReaderBasedJsonParser.java
index bb211ba..64c798d 100644
--- a/src/main/java/com/fasterxml/jackson/core/json/ReaderBasedJsonParser.java
+++ b/src/main/java/com/fasterxml/jackson/core/json/ReaderBasedJsonParser.java
@@ -2011,12 +2011,10 @@
int i = (int) c;
if (i <= INT_BACKSLASH) {
if (i == INT_BACKSLASH) {
- /* Although chars outside of BMP are to be escaped as
- * an UTF-16 surrogate pair, does that affect decoding?
- * For now let's assume it does not.
- */
+ // Although chars outside of BMP are to be escaped as an UTF-16 surrogate pair,
+ // does that affect decoding? For now let's assume it does not.
_inputPtr = inPtr;
- c = _decodeEscaped();
+ /*c = */ _decodeEscaped();
inPtr = _inputPtr;
inLen = _inputEnd;
} else if (i <= INT_QUOTE) {
@@ -2128,9 +2126,6 @@
return i;
}
if (i != INT_COLON) {
- if (i < INT_SPACE) {
- _throwInvalidSpace(i);
- }
_reportUnexpectedChar(i, "was expecting a colon to separate field name and value");
}
gotColon = true;
diff --git a/src/main/java/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java b/src/main/java/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java
index cc2c927..3ad528c 100644
--- a/src/main/java/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java
+++ b/src/main/java/com/fasterxml/jackson/core/json/UTF8StreamJsonParser.java
@@ -2559,17 +2559,16 @@
_decodeEscaped();
break;
case 2: // 2-byte UTF
- _skipUtf8_2(c);
+ _skipUtf8_2();
break;
case 3: // 3-byte UTF
- _skipUtf8_3(c);
+ _skipUtf8_3();
break;
case 4: // 4-byte UTF
_skipUtf8_4(c);
break;
default:
if (c < INT_SPACE) {
- // As per [JACKSON-208], call can now return:
_throwUnquotedSpace(c, "string value");
} else {
// Is this good enough error message?
@@ -2676,9 +2675,7 @@
switch (codes[c]) {
case 1: // backslash
- if (c != '\'') { // marked as special, isn't here
- c = _decodeEscaped();
- }
+ c = _decodeEscaped();
break;
case 2: // 2-byte UTF
c = _decodeUtf8_2(c);
@@ -3018,9 +3015,6 @@
return i;
}
if (i != INT_COLON) {
- if (i < INT_SPACE) {
- _throwInvalidSpace(i);
- }
_reportUnexpectedChar(i, "was expecting a colon to separate field name and value");
}
gotColon = true;
@@ -3086,10 +3080,10 @@
_skipCR();
break;
case 2: // 2-byte UTF
- _skipUtf8_2(i);
+ _skipUtf8_2();
break;
case 3: // 3-byte UTF
- _skipUtf8_3(i);
+ _skipUtf8_3();
break;
case 4: // 4-byte UTF
_skipUtf8_4(i);
@@ -3135,10 +3129,10 @@
case '*': // nop for these comments
break;
case 2: // 2-byte UTF
- _skipUtf8_2(i);
+ _skipUtf8_2();
break;
case 3: // 3-byte UTF
- _skipUtf8_3(i);
+ _skipUtf8_3();
break;
case 4: // 4-byte UTF
_skipUtf8_4(i);
@@ -3346,12 +3340,12 @@
return ((c << 6) | (d & 0x3F)) - 0x10000;
}
- private final void _skipUtf8_2(int c) throws IOException
+ private final void _skipUtf8_2() throws IOException
{
if (_inputPtr >= _inputEnd) {
loadMoreGuaranteed();
}
- c = (int) _inputBuffer[_inputPtr++];
+ int c = (int) _inputBuffer[_inputPtr++];
if ((c & 0xC0) != 0x080) {
_reportInvalidOther(c & 0xFF, _inputPtr);
}
@@ -3360,13 +3354,13 @@
/* Alas, can't heavily optimize skipping, since we still have to
* do validity checks...
*/
- private final void _skipUtf8_3(int c) throws IOException
+ private final void _skipUtf8_3() throws IOException
{
if (_inputPtr >= _inputEnd) {
loadMoreGuaranteed();
}
//c &= 0x0F;
- c = (int) _inputBuffer[_inputPtr++];
+ int c = (int) _inputBuffer[_inputPtr++];
if ((c & 0xC0) != 0x080) {
_reportInvalidOther(c & 0xFF, _inputPtr);
}
diff --git a/src/main/java/com/fasterxml/jackson/core/sym/ByteQuadsCanonicalizer.java b/src/main/java/com/fasterxml/jackson/core/sym/ByteQuadsCanonicalizer.java
index d9e6c4f..3532b7e 100644
--- a/src/main/java/com/fasterxml/jackson/core/sym/ByteQuadsCanonicalizer.java
+++ b/src/main/java/com/fasterxml/jackson/core/sym/ByteQuadsCanonicalizer.java
@@ -456,7 +456,7 @@
int total = totalCount();
return String.format("[%s: size=%d, hashSize=%d, %d/%d/%d/%d pri/sec/ter/spill (=%s), total:%d]",
getClass().getName(), _count, _hashSize,
- pri, sec, tert, spill, total, (pri+sec+tert+spill), total);
+ pri, sec, tert, spill, (pri+sec+tert+spill), total);
}
/*
@@ -595,9 +595,6 @@
return _names[offset2 >> 2];
}
}
- if (len == 0) { // empty slot? Short-circuit if no more spillovers
- return null;
- }
return _findSecondary(offset, hash, q, qlen);
}
diff --git a/src/main/java/com/fasterxml/jackson/core/util/InternCache.java b/src/main/java/com/fasterxml/jackson/core/util/InternCache.java
index 3015196..829a679 100644
--- a/src/main/java/com/fasterxml/jackson/core/util/InternCache.java
+++ b/src/main/java/com/fasterxml/jackson/core/util/InternCache.java
@@ -16,6 +16,8 @@
public final class InternCache
extends ConcurrentHashMap<String,String> // since 2.3
{
+ private static final long serialVersionUID = 1L;
+
/**
* Size to use is somewhat arbitrary, so let's choose something that's
* neither too small (low hit ratio) nor too large (waste of memory).