diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/FormatDecode.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/FormatDecode.java index 28cdf3b653c3..3de143f98144 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/FormatDecode.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/FormatDecode.java @@ -248,7 +248,7 @@ class FormatDecode { } storeValidator(allowed, pos, parameters, argumentCount); } - if (i < formatString.length() - 1) { + if (i < formatString.length()) { checkText(formatString.substring(i)); } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/malformed_format_string/MalformedFormatString.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/malformed_format_string/MalformedFormatString.java index ee50bbfe8df2..951cd1c10cdb 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/malformed_format_string/MalformedFormatString.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/malformed_format_string/MalformedFormatString.java @@ -7,16 +7,15 @@ import java.util.Formattable; public class MalformedFormatString { - public void foo() - { - String.format("%", 3.0); - System.out.printf("%", 3.0); + public void foo() { + String.format("%%", 3.0); + System.out.printf("%s", 3.0, 2.0); System.out.printf("%q", 3.0); System.out.printf("%d", 3.0); System.out.printf(new Locale(""),"%d%s", 3.0, "foo"); } - public static void main(String[] args) { + public static void main(String[] args) { String local = "hmm"; String good = String.format("%s %s", 1, 2); // this is valid according to the inspector (correct) @@ -60,6 +59,7 @@ public class MalformedFormatString { void badStrings() { // bad format specifier String.format("%) %n"); + String.format("%d%", 1); // flags on newline not allowed String.format("%(n");