Skip to content

Commit a926cd8

Browse files
authored
Added support for UUID.randomUUID().toString() detection (#17)
1 parent 36d403c commit a926cd8

4 files changed

Lines changed: 25 additions & 1 deletion

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>software.amazon.lambda.snapstart</groupId>
66
<artifactId>aws-lambda-snapstart-java-rules</artifactId>
7-
<version>0.1.0</version>
7+
<version>0.1.1-SNAPSHOT</version>
88
<name>${project.groupId}:${project.artifactId}</name>
99
<description>AWS Lambda SnapStart SpotBugs Rules</description>
1010
<url>https://github.com/aws/aws-lambda-snapstart-java-rules</url>

src/main/java/software/amazon/lambda/snapstart/ReturnValueRandomnessPropertyDatabase.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class ReturnValueRandomnessPropertyDatabase extends MethodPropertyDatabas
1414
private static final Set<MethodDescriptor> ALREADY_KNOWN_PSEUDO_RANDOM_GEN_METHODS = new HashSet<>(Arrays.asList(
1515
new MethodDescriptor("java/lang/Math", "random", "()D", true),
1616
new MethodDescriptor("java/util/UUID", "randomUUID", "()Ljava/util/UUID;", true),
17+
new MethodDescriptor("java/util/UUID", "toString", "()Ljava/lang/String;"),
1718
new MethodDescriptor("java/util/Random", "nextInt", "()I"),
1819
new MethodDescriptor("java/lang/StrictMath", "random", "()D", true)
1920
));

src/test/java/software/amazon/lambda/snapstart/LambdaHandlerInitedWithRandomValueTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,12 @@ public void findsBugsInClassesThatImplementCracResource() {
146146
assertThat(bugCollection, containsExactly(4, snapStartBugMatcher().inClass(className).build()));
147147
}
148148

149+
@Test
150+
public void testLambdaWithToString() {
151+
BugCollection bugCollection = findBugsInClasses("LambdaWithToString");
152+
assertThat(bugCollection, containsExactly(1, snapStartBugMatcher().inClass("LambdaWithToString").atField("random").atLine(11).build()));
153+
}
154+
149155
// TODO fix all tests using this and remove this method eventually!
150156
private static void toBeFixed(Executable e) {
151157
assertThrows(AssertionError.class, e);
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package software.amazon.lambda.snapstart.lambdaexamples;
2+
3+
import com.amazonaws.services.lambda.runtime.Context;
4+
import com.amazonaws.services.lambda.runtime.RequestHandler;
5+
6+
import java.util.Map;
7+
import java.util.UUID;
8+
9+
public class LambdaWithToString implements RequestHandler<Map<String,String>, String> {
10+
11+
private final String random = UUID.randomUUID().toString();
12+
13+
@Override
14+
public String handleRequest(Map<String, String> stringStringMap, Context context) {
15+
return random;
16+
}
17+
}

0 commit comments

Comments
 (0)