Skip to content

Commit f413a8e

Browse files
Enable & fix inspections: Single character string argument in String.indexOf() call (#2823)
Reports single character strings being used as an argument in String.indexOf() and String.lastIndexOf() calls. A quick-fix is suggested to replace such string literals with equivalent character literals, gaining some performance enhancement. Example: ``` return s.indexOf("x"); ``` After the quick-fix is applied: ``` return s.indexOf('x'); ```
1 parent 63779af commit f413a8e

File tree

13 files changed

+16
-15
lines changed

13 files changed

+16
-15
lines changed

.idea/inspectionProfiles/AWS_Java_SDK_2_0.xml

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/emitters/UnusedImportRemover.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private Predicate<String> isUnused(String content) {
6262
}
6363

6464
private boolean isNotReferenced(String contentWithoutImports, String importToCheck) {
65-
String symbol = importToCheck.substring(importToCheck.lastIndexOf(".") + 1);
65+
String symbol = importToCheck.substring(importToCheck.lastIndexOf('.') + 1);
6666
return !Pattern.compile(String.format("\\b%s\\b", symbol)).matcher(contentWithoutImports).find();
6767
}
6868

codegen/src/main/java/software/amazon/awssdk/codegen/emitters/UnusedImportRemover.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private Predicate<String> isUnused(String content) {
6262
}
6363

6464
private boolean isNotReferenced(String contentWithoutImports, String importToCheck) {
65-
String symbol = importToCheck.substring(importToCheck.lastIndexOf(".") + 1);
65+
String symbol = importToCheck.substring(importToCheck.lastIndexOf('.') + 1);
6666
return !Pattern.compile(String.format("\\b%s\\b", symbol)).matcher(contentWithoutImports).find();
6767
}
6868

codegen/src/main/java/software/amazon/awssdk/codegen/internal/DocumentationUtils.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ public static String stripHtmlTags(String documentation) {
7272
}
7373

7474
if (documentation.startsWith("<")) {
75-
int startTagIndex = documentation.indexOf(">");
76-
int closingTagIndex = documentation.lastIndexOf("<");
75+
int startTagIndex = documentation.indexOf('>');
76+
int closingTagIndex = documentation.lastIndexOf('<');
7777
if (closingTagIndex > startTagIndex) {
7878
documentation = stripHtmlTags(documentation.substring(startTagIndex + 1, closingTagIndex));
7979
} else {

codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/ListModel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public String getTemplateImplType() {
125125
}
126126

127127
public String getSimpleType() {
128-
int startIndex = memberType.lastIndexOf(".");
128+
int startIndex = memberType.lastIndexOf('.');
129129
return memberType.substring(startIndex + 1);
130130
}
131131
}

codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/VariableModel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public void setVariableType(String variableType) {
6464

6565
public String getSimpleType() {
6666
if (variableType.contains(".")) {
67-
return variableType.substring(variableType.lastIndexOf(".") + 1);
67+
return variableType.substring(variableType.lastIndexOf('.') + 1);
6868
}
6969
return variableType;
7070
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/PoetUtils.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ public static TypeVariableName createBoundedTypeVariableName(String parameterNam
9898
}
9999

100100
public static ClassName classNameFromFqcn(String fqcn) {
101-
String basePath = fqcn.substring(0, fqcn.lastIndexOf("."));
102-
String className = fqcn.substring(fqcn.lastIndexOf(".") + 1);
101+
String basePath = fqcn.substring(0, fqcn.lastIndexOf('.'));
102+
String className = fqcn.substring(fqcn.lastIndexOf('.') + 1);
103103
return ClassName.get(basePath, className);
104104
}
105105

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/specs/JsonProtocolSpec.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -389,7 +389,7 @@ private String protocolEnumName(software.amazon.awssdk.codegen.model.intermediat
389389

390390
private ClassName baseExceptionClassName(IntermediateModel model) {
391391
String exceptionPath = model.getSdkModeledExceptionBaseFqcn()
392-
.substring(0, model.getSdkModeledExceptionBaseFqcn().lastIndexOf("."));
392+
.substring(0, model.getSdkModeledExceptionBaseFqcn().lastIndexOf('.'));
393393

394394
return ClassName.get(exceptionPath, model.getSdkModeledExceptionBaseClassName());
395395
}

core/protocols/aws-json-protocol/src/main/java/software/amazon/awssdk/protocols/json/internal/unmarshall/JsonErrorCodeParser.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ private String parseErrorCodeFromContents(JsonNode jsonContents) {
124124
return null;
125125
}
126126
String code = errorCodeField.text();
127-
int separator = code.lastIndexOf("#");
127+
int separator = code.lastIndexOf('#');
128128
return code.substring(separator + 1);
129129
}
130130
}

core/protocols/protocol-core/src/main/java/software/amazon/awssdk/protocols/core/ProtocolUtils.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,13 @@ static String addStaticQueryParametersToRequest(SdkHttpFullRequest.Builder reque
6262

6363
String resourcePath = uriResourcePath;
6464

65-
int index = resourcePath.indexOf("?");
65+
int index = resourcePath.indexOf('?');
6666
if (index != -1) {
6767
String queryString = resourcePath.substring(index + 1);
6868
resourcePath = resourcePath.substring(0, index);
6969

7070
for (String s : queryString.split("[;&]")) {
71-
index = s.indexOf("=");
71+
index = s.indexOf('=');
7272
if (index != -1) {
7373
request.putRawQueryParameter(s.substring(0, index), s.substring(index + 1));
7474
} else {

services/glacier/src/main/java/software/amazon/awssdk/services/glacier/internal/GlacierExecutionInterceptor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ private long parseContentLengthFromRange(String range) {
6666
String end = range.substring(range.indexOf('-') + 1);
6767

6868
if (end.contains("/")) {
69-
end = end.substring(0, end.indexOf("/"));
69+
end = end.substring(0, end.indexOf('/'));
7070
}
7171

7272
return Long.parseLong(end) - Long.parseLong(start) + 1;

services/route53/src/main/java/software/amazon/awssdk/services/route53/internal/Route53IdInterceptor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ private String removePrefix(String s) {
252252
return null;
253253
}
254254

255-
int lastIndex = s.lastIndexOf("/");
255+
int lastIndex = s.lastIndexOf('/');
256256
if (lastIndex > 0) {
257257
return s.substring(lastIndex + 1);
258258
}

test/protocol-tests-core/src/main/java/software/amazon/awssdk/protocol/asserts/marshalling/UriAssertion.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,6 @@ private String getActualPath(LoggedRequest actual) {
4141
}
4242

4343
private String removeTrailingSlash(String str) {
44-
return (str.endsWith("/")) ? str.substring(0, str.lastIndexOf("/")) : str;
44+
return (str.endsWith("/")) ? str.substring(0, str.lastIndexOf('/')) : str;
4545
}
4646
}

0 commit comments

Comments
 (0)