Michael Blow has submitted this change and it was merged. Change subject: [NO ISSUE] SonarQube fixes ......................................................................
[NO ISSUE] SonarQube fixes Change-Id: I9f135fa10a0f78c967f2803bb2c3bce83e96a123 Reviewed-on: https://asterix-gerrit.ics.uci.edu/3307 Integration-Tests: Michael Blow <[email protected]> Tested-by: Michael Blow <[email protected]> Contrib: Jenkins <[email protected]> Reviewed-by: Till Westmann <[email protected]> --- M asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/PrintTools.java M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/bytes/HexPrinter.java M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringReader.java M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringWriter.java 5 files changed, 58 insertions(+), 50 deletions(-) Approvals: Anon. E. Moose #1000171: Till Westmann: Looks good to me, approved Jenkins: Michael Blow: Verified; Verified diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/PrintTools.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/PrintTools.java index a9c4d15..0ccfa20 100644 --- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/PrintTools.java +++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/printers/PrintTools.java @@ -22,6 +22,7 @@ import java.io.OutputStream; import java.io.PrintStream; import java.nio.charset.StandardCharsets; +import java.util.concurrent.TimeUnit; import org.apache.asterix.dataflow.data.nontagged.serde.ADoubleSerializerDeserializer; import org.apache.asterix.dataflow.data.nontagged.serde.AFloatSerializerDeserializer; @@ -36,7 +37,7 @@ public class PrintTools { private static final GregorianCalendarSystem gCalInstance = GregorianCalendarSystem.getInstance(); - private static long CHRONON_OF_DAY = 24 * 60 * 60 * 1000; + private static final long CHRONON_OF_DAY = TimeUnit.DAYS.toMillis(1); public static void printDateString(byte[] b, int s, int l, PrintStream ps) throws HyracksDataException { long chrononTime = AInt32SerializerDeserializer.getInt(b, s + 1) * CHRONON_OF_DAY; @@ -218,44 +219,54 @@ } } - public static void printDoubleForJson(byte[] b, int s, PrintStream ps) throws HyracksDataException { + public static void printDoubleForJson(byte[] b, int s, PrintStream ps) { final double d = ADoubleSerializerDeserializer.getDouble(b, s + 1); if (Double.isFinite(d)) { ps.print(d); } else { ps.append('"'); - ps.print(Double.isNaN(d) ? "NaN" : (d == Double.POSITIVE_INFINITY) ? "INF" : "-INF"); + ps.print(printNonFiniteDouble(d)); ps.append('"'); } } - public static void printDouble(byte[] b, int s, PrintStream ps) throws HyracksDataException { + public static void printDouble(byte[] b, int s, PrintStream ps) { final double d = ADoubleSerializerDeserializer.getDouble(b, s + 1); if (Double.isFinite(d)) { ps.print(d); } else { - ps.print(Double.isNaN(d) ? "NaN" : (d == Double.POSITIVE_INFINITY) ? "INF" : "-INF"); + ps.print(printNonFiniteDouble(d)); } } - public static void printFloatForJson(byte[] b, int s, PrintStream ps) throws HyracksDataException { + public static void printFloatForJson(byte[] b, int s, PrintStream ps) { final float f = AFloatSerializerDeserializer.getFloat(b, s + 1); if (Float.isFinite(f)) { ps.print(f); } else { ps.print('"'); - ps.print(Float.isNaN(f) ? "NaN" : (f == Float.POSITIVE_INFINITY) ? "INF" : "-INF"); + ps.print(printNonFiniteFloat(f)); ps.print('"'); } } - public static void printFloat(byte[] b, int s, PrintStream ps) throws HyracksDataException { + public static void printFloat(byte[] b, int s, PrintStream ps) { final float f = AFloatSerializerDeserializer.getFloat(b, s + 1); if (Float.isFinite(f)) { ps.print(f); } else { - ps.print(Float.isNaN(f) ? "NaN" : (f == Float.POSITIVE_INFINITY) ? "INF" : "-INF"); + ps.print(printNonFiniteFloat(f)); } + } + + @SuppressWarnings("squid:S1244") // equality comparison w/ infinity is not problematic + private static String printNonFiniteDouble(double d) { + return Double.isNaN(d) ? "NaN" : d == Double.POSITIVE_INFINITY ? "INF" : "-INF"; + } + + @SuppressWarnings("squid:S1244") // equality comparison w/ infinity is not problematic + private static String printNonFiniteFloat(float f) { + return Float.isNaN(f) ? "NaN" : f == Float.POSITIVE_INFINITY ? "INF" : "-INF"; } public enum CASE { @@ -382,8 +393,8 @@ os.write('u'); os.write('0'); os.write('0'); - os.write(HexPrinter.hex((c >>> 4) & 0x0f, HexPrinter.CASE.LOWER_CASE)); - os.write(HexPrinter.hex(c & 0x0f, HexPrinter.CASE.LOWER_CASE)); + os.write(HexPrinter.hex((c >>> 4) & 0x0f, HexPrinter.Case.LOWER_CASE)); + os.write(HexPrinter.hex(c & 0x0f, HexPrinter.Case.LOWER_CASE)); } /** diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/bytes/HexPrinter.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/bytes/HexPrinter.java index 5a9c064..d340526 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/bytes/HexPrinter.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/bytes/HexPrinter.java @@ -22,26 +22,26 @@ import java.io.IOException; public class HexPrinter { - public enum CASE { - LOWER_CASE, - UPPER_CASE, + public enum Case { + LOWER_CASE('a'), + UPPER_CASE('A'); + + private final char a; + + Case(char a) { + this.a = a; + } } - public static byte hex(int i, CASE c) { - switch (c) { - case LOWER_CASE: - return (byte) (i < 10 ? i + '0' : i + ('a' - 10)); - case UPPER_CASE: - return (byte) (i < 10 ? i + '0' : i + ('A' - 10)); - } - return Byte.parseByte(null); + public static byte hex(int i, Case c) { + return (byte) (i < 10 ? i + '0' : i + (c.a - 10)); } public static Appendable printHexString(byte[] bytes, int start, int length, Appendable appendable) throws IOException { for (int i = 0; i < length; ++i) { - appendable.append((char) hex((bytes[start + i] >>> 4) & 0x0f, CASE.UPPER_CASE)); - appendable.append((char) hex((bytes[start + i] & 0x0f), CASE.UPPER_CASE)); + appendable.append((char) hex((bytes[start + i] >>> 4) & 0x0f, Case.UPPER_CASE)); + appendable.append((char) hex((bytes[start + i] & 0x0f), Case.UPPER_CASE)); } return appendable; } diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringReader.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringReader.java index 27d6008..43faf18 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringReader.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringReader.java @@ -22,12 +22,15 @@ import java.io.DataInput; import java.io.EOFException; import java.io.IOException; +import java.io.Serializable; import java.io.UTFDataFormatException; -public class UTF8StringReader { +public class UTF8StringReader implements Serializable { - byte[] bytearr = null; - char[] chararr = null; + private static final long serialVersionUID = 1L; + + transient byte[] bytearr = null; + transient char[] chararr = null; /** * Reads from the diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java index 9aa2b5d..f50fa90 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java @@ -33,6 +33,10 @@ * Most of the codes were migrated from asterix-fuzzyjoin and hyracks-storage-am-invertedindex */ public class UTF8StringUtil { + + private UTF8StringUtil() { + } + public static char charAt(byte[] b, int s) { if (s >= b.length) { throw new ArrayIndexOutOfBoundsException(s); @@ -54,7 +58,7 @@ return (char) (((c & 0x1F) << 6) | ((b[s + 1]) & 0x3F)); case 14: - return (char) (((c & 0x0F) << 12) | (((b[s + 1]) & 0x3F) << 6) | (((b[s + 2]) & 0x3F) << 0)); + return (char) (((c & 0x0F) << 12) | (((b[s + 1]) & 0x3F) << 6) | (b[s + 2] & 0x3F)); default: throw new IllegalArgumentException(); @@ -80,8 +84,10 @@ case 14: return 3; + + default: + throw new IllegalStateException(); } - throw new IllegalStateException(); } public static boolean isCharStart(byte[] b, int s) { @@ -353,12 +359,9 @@ } while (position < maxPosition) { char c = charAt(b, position); - switch (c) { + if (c == '\\' || c == '"') { // escape - case '\\': - case '"': - os.write('\\'); - break; + os.write('\\'); } int sz = charSize(b, position); while (sz > 0) { @@ -557,8 +560,7 @@ if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80)) { throw new UTFDataFormatException("malformed input around byte " + (count - 1)); } - chararr[chararr_count++] = - (char) (((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0)); + chararr[chararr_count++] = (char) (((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | (char3 & 0x3F)); break; default: /* 10xx xxxx, 1111 xxxx */ @@ -648,10 +650,10 @@ } else if (c > 0x07FF) { tempBytes[count++] = (byte) (0xE0 | ((c >> 12) & 0x0F)); tempBytes[count++] = (byte) (0x80 | ((c >> 6) & 0x3F)); - tempBytes[count++] = (byte) (0x80 | ((c >> 0) & 0x3F)); + tempBytes[count++] = (byte) (0x80 | (c & 0x3F)); } else { tempBytes[count++] = (byte) (0xC0 | ((c >> 6) & 0x1F)); - tempBytes[count++] = (byte) (0x80 | ((c >> 0) & 0x3F)); + tempBytes[count++] = (byte) (0x80 | (c & 0x3F)); } return count - orig; } @@ -661,10 +663,10 @@ if (writer == null) { tempBytes = new byte[utflen + 5]; } else { - if (writer.getTempBytes() == null || writer.getTempBytes().length < utflen + 5) { - writer.setTempBytes(new byte[utflen + 5]); + if (writer.tempBytes == null || writer.tempBytes.length < utflen + 5) { + writer.tempBytes = new byte[utflen + 5]; } - tempBytes = writer.getTempBytes(); + tempBytes = writer.tempBytes; } return tempBytes; } diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringWriter.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringWriter.java index 3d9a7c5..563f865 100644 --- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringWriter.java +++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringWriter.java @@ -25,7 +25,7 @@ public class UTF8StringWriter implements Serializable { private static final long serialVersionUID = 1L; - private byte[] tempBytes; + transient byte[] tempBytes; public final void writeUTF8(CharSequence str, DataOutput out) throws IOException { UTF8StringUtil.writeUTF8(str, out, this); @@ -33,14 +33,6 @@ public final void writeUTF8(char[] buffer, int start, int length, DataOutput out) throws IOException { UTF8StringUtil.writeUTF8(buffer, start, length, out, this); - } - - public byte[] getTempBytes() { - return tempBytes; - } - - public void setTempBytes(byte[] tempBytes) { - this.tempBytes = tempBytes; } } -- To view, visit https://asterix-gerrit.ics.uci.edu/3307 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I9f135fa10a0f78c967f2803bb2c3bce83e96a123 Gerrit-PatchSet: 3 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Michael Blow <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]>
