diff --git a/pmd-java/src/main/resources/category/java/performance.xml b/pmd-java/src/main/resources/category/java/performance.xml index a4c4dffc31..92f6d98e74 100644 --- a/pmd-java/src/main/resources/category/java/performance.xml +++ b/pmd-java/src/main/resources/category/java/performance.xml @@ -699,7 +699,8 @@ public class C { externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_performance.html#simplifystartswith"> Since it passes in a literal of length 1, calls to (string).startsWith can be rewritten using (string).charAt(0) -at the expense of some readability. +at the expense of some readability. To prevent IndexOutOfBoundsException being thrown by the charAt method, +ensure that the (string) is not empty by making an additional check first. 3 @@ -730,7 +731,7 @@ public class Foo { } boolean fasterCheckIt(String x) { - return x.charAt(0) == 'a'; // faster approach + return !x.isEmpty() && x.charAt(0) == 'a'; // faster approach } } ]]>