From 84c49f645abfddcce89ae0a0e2228eb8385dcfde Mon Sep 17 00:00:00 2001 From: Claudio Maggioni Date: Wed, 26 Apr 2023 11:03:57 +0200 Subject: [PATCH] wip on fixing checker warnings --- Assignment03-extended_typechecking.pdf | Bin 0 -> 85638 bytes .../text/translate/AggregateTranslator.java | 7 +++++- .../translate/CharSequenceTranslator.java | 21 ++++++++++++++---- .../text/translate/CodePointTranslator.java | 7 +++++- .../text/translate/CsvTranslators.java | 18 +++++++++++++-- .../text/translate/UnicodeEscaper.java | 15 +++++++++---- 6 files changed, 56 insertions(+), 12 deletions(-) create mode 100644 Assignment03-extended_typechecking.pdf diff --git a/Assignment03-extended_typechecking.pdf b/Assignment03-extended_typechecking.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4cec2715162ff1a76e057b1dd20cddd5009a8836 GIT binary patch literal 85638 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 literal 0 HcmV?d00001 diff --git a/sources/src/main/java/org/apache/commons/text/translate/AggregateTranslator.java b/sources/src/main/java/org/apache/commons/text/translate/AggregateTranslator.java index e13fa57..ac9aa0a 100644 --- a/sources/src/main/java/org/apache/commons/text/translate/AggregateTranslator.java +++ b/sources/src/main/java/org/apache/commons/text/translate/AggregateTranslator.java @@ -16,6 +16,9 @@ */ package org.apache.commons.text.translate; +import org.checkerframework.checker.index.qual.LTLengthOf; +import org.checkerframework.checker.index.qual.NonNegative; + import java.io.IOException; import java.io.Writer; import java.util.ArrayList; @@ -53,7 +56,9 @@ public class AggregateTranslator extends CharSequenceTranslator { * {@inheritDoc} */ @Override - public int translate(final CharSequence input, final int index, final Writer writer) throws IOException { + public int translate(final CharSequence input, + final @NonNegative @LTLengthOf("#1") int index, + final Writer writer) throws IOException { for (final CharSequenceTranslator translator : translators) { final int consumed = translator.translate(input, index, writer); if (consumed != 0) { diff --git a/sources/src/main/java/org/apache/commons/text/translate/CharSequenceTranslator.java b/sources/src/main/java/org/apache/commons/text/translate/CharSequenceTranslator.java index 6a96a22..f927b35 100644 --- a/sources/src/main/java/org/apache/commons/text/translate/CharSequenceTranslator.java +++ b/sources/src/main/java/org/apache/commons/text/translate/CharSequenceTranslator.java @@ -23,6 +23,9 @@ import java.io.Writer; import java.util.Locale; import org.apache.commons.lang3.Validate; +import org.checkerframework.checker.index.qual.LTLengthOf; +import org.checkerframework.checker.index.qual.NonNegative; +import org.checkerframework.checker.index.qual.Positive; /** * An API for translating text. @@ -80,7 +83,9 @@ public abstract class CharSequenceTranslator { * @return int count of code points consumed * @throws IOException if and only if the Writer produces an IOException */ - public abstract int translate(CharSequence input, int index, Writer writer) throws IOException; + public abstract int translate(CharSequence input, + @NonNegative @LTLengthOf("#1") int index, + Writer writer) throws IOException; /** * Translate an input onto a Writer. This is intentionally final as its algorithm is @@ -116,8 +121,14 @@ public abstract class CharSequenceTranslator { } // contract with translators is that they have to understand code points // and they just took care of a surrogate pair - for (int pt = 0; pt < consumed; pt++) { - pos += Character.charCount(Character.codePointAt(input, pos)); + // Added pos < len as defensive condition for possibly buggy implementations of translate returning wrong + // number of codepoints consumed + for (int pt = 0; pt < consumed && pos < len; pt++) { + int increment = Character.charCount(Character.codePointAt(input, pos)); + assert pos + increment <= len : "@AssumeAssertion(index): increment corresponds to the number of bytes" + + "of char codepoint at position index[pos]. Adding this quantity results in a valid index or in" + + "the length of the string."; + pos += increment; } } } @@ -130,8 +141,10 @@ public abstract class CharSequenceTranslator { * @return CharSequenceTranslator merging this translator with the others */ public final CharSequenceTranslator with(final CharSequenceTranslator... translators) { - final CharSequenceTranslator[] newArray = new CharSequenceTranslator[translators.length + 1]; + final @Positive int newArrayLen = translators.length + 1; + final CharSequenceTranslator[] newArray = new CharSequenceTranslator[newArrayLen]; newArray[0] = this; + assert translators.length == newArray.length - 1 : "@AssumeAssertion(index): by construction of newArray and newArrayLen"; System.arraycopy(translators, 0, newArray, 1, translators.length); return new AggregateTranslator(newArray); } diff --git a/sources/src/main/java/org/apache/commons/text/translate/CodePointTranslator.java b/sources/src/main/java/org/apache/commons/text/translate/CodePointTranslator.java index 992c46e..c6d482c 100644 --- a/sources/src/main/java/org/apache/commons/text/translate/CodePointTranslator.java +++ b/sources/src/main/java/org/apache/commons/text/translate/CodePointTranslator.java @@ -16,6 +16,9 @@ */ package org.apache.commons.text.translate; +import org.checkerframework.checker.index.qual.LTLengthOf; +import org.checkerframework.checker.index.qual.NonNegative; + import java.io.IOException; import java.io.Writer; @@ -32,7 +35,9 @@ public abstract class CodePointTranslator extends CharSequenceTranslator { * {@inheritDoc} */ @Override - public final int translate(final CharSequence input, final int index, final Writer writer) throws IOException { + public final int translate(final CharSequence input, + final @NonNegative @LTLengthOf("#1") int index, + final Writer writer) throws IOException { final int codePoint = Character.codePointAt(input, index); final boolean consumed = translate(codePoint, writer); return consumed ? 1 : 0; diff --git a/sources/src/main/java/org/apache/commons/text/translate/CsvTranslators.java b/sources/src/main/java/org/apache/commons/text/translate/CsvTranslators.java index d6bb8be..1751f59 100644 --- a/sources/src/main/java/org/apache/commons/text/translate/CsvTranslators.java +++ b/sources/src/main/java/org/apache/commons/text/translate/CsvTranslators.java @@ -58,14 +58,28 @@ public final class CsvTranslators { @Override void translateWhole(final CharSequence input, final Writer writer) throws IOException { + final int zeroIndex = 0; + final int oneIndex = 1; + final int lastIndex = input.length() - 1; + + // unfortunately there is no way to encode non-empty length + assert zeroIndex < input.length() && lastIndex >= 0 : + "@AssumeAssertion(index): translateWhole is called by " + + "SinglePassTranslator.translate(CharSequence, int, Writer), and that is part of a template method" + + "implementation that by contract is called only with non-empty `input` CharSequences"; + // is input not quoted? - if (input.charAt(0) != CSV_QUOTE || input.charAt(input.length() - 1) != CSV_QUOTE) { + if (input.charAt(zeroIndex) != CSV_QUOTE || input.charAt(lastIndex) != CSV_QUOTE) { writer.write(input.toString()); return; } + if (oneIndex >= input.length()) { + throw new IllegalArgumentException("input length should be at least 2"); + } + // strip quotes - final String quoteless = input.subSequence(1, input.length() - 1).toString(); + final String quoteless = input.subSequence(oneIndex, lastIndex).toString(); if (StringUtils.containsAny(quoteless, CSV_SEARCH_CHARS)) { // deal with escaped quotes; ie) "" diff --git a/sources/src/main/java/org/apache/commons/text/translate/UnicodeEscaper.java b/sources/src/main/java/org/apache/commons/text/translate/UnicodeEscaper.java index ea7081d..dfade90 100644 --- a/sources/src/main/java/org/apache/commons/text/translate/UnicodeEscaper.java +++ b/sources/src/main/java/org/apache/commons/text/translate/UnicodeEscaper.java @@ -128,11 +128,18 @@ public class UnicodeEscaper extends CodePointTranslator { writer.write(toUtf16Escape(codePoint)); } else { writer.write("\\u"); - writer.write(HEX_DIGITS[codePoint >> 12 & 15]); - writer.write(HEX_DIGITS[codePoint >> 8 & 15]); - writer.write(HEX_DIGITS[codePoint >> 4 & 15]); - writer.write(HEX_DIGITS[codePoint & 15]); + writer.write(hexDigitsAccess(codePoint >> 12)); + writer.write(hexDigitsAccess(codePoint >> 8)); + writer.write(hexDigitsAccess(codePoint >> 4)); + writer.write(hexDigitsAccess(codePoint)); } return true; } + + private char hexDigitsAccess(final int index) { + int i = index & 15; + assert i >= 0 && i < HEX_DIGITS.length + : "@AssumeAssertion(index): bitwise and with 15 always produces numbers in [0,15]"; + return HEX_DIGITS[i]; + } }