Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #10943: Message validation in our Inputs should not have trailing and leading '.*' #10980

Merged
merged 1 commit into from
Nov 27, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public String toRegex() {
rawMessage = OPEN_CURLY_PATTERN.matcher(rawMessage).replaceAll("\\\\{");
rawMessage = OPEN_PAREN_PATTERN.matcher(rawMessage).replaceAll("\\\\(");
rawMessage = CLOSE_PAREN_PATTERN.matcher(rawMessage).replaceAll("\\\\)");
regex += rawMessage;
regex += rawMessage + ".*";
}
return regex;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,21 @@ public class InputEqualsAvoidNullEnhancedInstanceof {
public InputEqualsAvoidNullEnhancedInstanceof(String str) {
if (str instanceof String myString) {
System.out.println("Mystring!!");
boolean myBool = myString.equals("MyString!!"); // violation '.* left .* of .* equals .*.'
boolean myBool = myString.equals("MyString!!"); // violation 'left .* of .* equals'
boolean myOtherBool = myString.equals(str); // ok
} else if (str instanceof String oneMoreString) {
if(oneMoreString.equals("test")) { // violation '.* left .* of .* equals .*.'
if(oneMoreString.equals("test")) { // violation 'left .* of .* equals'
System.out.println("Test!!");
}
}
}

void foo (Object string) {
if(string instanceof String string1) {
final boolean myBool = string1.equals("test1") // violation '.* left .* of .* equals .*.'
|| string1.equals("test1.5") // violation '.* left .* of .* equals .*.'
|| string1.equals("test2") || // violation '.* left .* of .* equals .*.'
string1.equals("test3"); // violation '.* left .* of .* equals .*.'
final boolean myBool = string1.equals("test1") // violation 'left .* of .* equals'
|| string1.equals("test1.5") // violation 'left .* of .* equals'
|| string1.equals("test2") || // violation 'left .* of .* equals'
string1.equals("test3"); // violation 'left .* of .* equals'
if(string instanceof Integer integer) {
String string5 = integer.toString();
if(integer.toString().equals("integer")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ public class InputEqualsAvoidNullRecordsAndCompactCtors {

record TestRecord1(String str) {
public TestRecord1 {
str.equals("my string"); // violation '.* left .* of .* equals .*.'
str.equals("my string"); // violation 'left .* of .* equals'
"my string".equals(str); // ok
}
}

record TestRecord2() {
public boolean stringCheck1 (String toCheck){
return toCheck.equals("my string"); // violation '.* left .* of .* equals .*.'
return toCheck.equals("my string"); // violation 'left .* of .* equals'
}

public boolean stringCheck2 (String toCheck){
Expand All @@ -31,14 +31,14 @@ record TestRecord3() {
private static String str;
TestRecord3 (String str){
this();
str.equalsIgnoreCase("my string"); // violation '.* left .* of .* equalsIgnoreCase .*.'
str.equalsIgnoreCase("my string"); // violation 'left .* of .* equalsIgnoreCase'
"my string".equals(str); // ok
}
}

record TestRecord4(String str) {
public TestRecord4 {
str.equalsIgnoreCase("my string"); // violation '.* left .* of .* equalsIgnoreCase .*.'
str.equalsIgnoreCase("my string"); // violation 'left .* of .* equalsIgnoreCase'
"my string".equals(str); // ok
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
public class InputEqualsAvoidNullTextBlocks {
public void equalsAvoid(String myString) {
if (myString.equals("stuff")) { // violation 'String literal expressions should be on the left side of an equals comparison.'
} // violation below 'String .* left .* of .* equals .*'
} // violation below 'String .* left .* of .* equals'
if (myString.equals("""
stuff""")) {
}
}

public void method(Object object) {
if (object instanceof String s) { // violation below 'String .* left .* of .* equals .*'
if (object instanceof String s) { // violation below 'String .* left .* of .* equals'
if (s.equals("""
my string""")) {
System.out.println(s);
Expand All @@ -28,7 +28,7 @@ public void method(Object object) {

record MyRecord(String a, Object obj) {
public MyRecord {
if (obj instanceof String s) { // violation below 'String .* left .* of .* equalsIgnoreCase .*'
if (obj instanceof String s) { // violation below 'String .* left .* of .* equalsIgnoreCase'
if (s.equalsIgnoreCase("""
my other string""" + """
plus this string""" + """
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,17 @@ public void flagForEquals() {
public void flagForEqualsIgnoreCase() {
String s = "pizza";

s.equalsIgnoreCase("hot pizza"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase("hot pizza"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase(s = "cold pizza"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase(s = "cold pizza"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase(((s = "cold pizza"))); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase(((s = "cold pizza"))); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase("cheese" + "ham" + "sauce"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase("cheese" + "ham" + "sauce"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase(("cheese" + "ham") + "sauce"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase(("cheese" + "ham") + "sauce"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase((("cheese" + "ham")) + "sauce"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase((("cheese" + "ham")) + "sauce"); // violation 'left .* of .* equalsIgnoreCase'
}

/**
Expand All @@ -73,17 +73,17 @@ public void flagForBoth() {

o.equals((("cheese" + "ham")) + "sauce");

s.equalsIgnoreCase("hot pizza"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase("hot pizza"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase(s = "cold pizza"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase(s = "cold pizza"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase(((s = "cold pizza"))); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase(((s = "cold pizza"))); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase("cheese" + "ham" + "sauce"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase("cheese" + "ham" + "sauce"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase(("cheese" + "ham") + "sauce"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase(("cheese" + "ham") + "sauce"); // violation 'left .* of .* equalsIgnoreCase'

s.equalsIgnoreCase((("cheese" + "ham")) + "sauce"); // violation '.* left .* of .* equalsIgnoreCase .*.'
s.equalsIgnoreCase((("cheese" + "ham")) + "sauce"); // violation 'left .* of .* equalsIgnoreCase'
}


Expand Down Expand Up @@ -242,20 +242,20 @@ class NewTest {
NewTest testObj = new NewTest("");

NewTest(String param) {
param.equals(""); // violation '.* left .* of .* equals .*.'
param.equals(""); // violation 'left .* of .* equals'
}

public void method(String param) {
final String localVar = "";

localVar.equals(""); // violation '.* left .* of .* equals .*.'
param.equals(""); // violation '.* left .* of .* equals .*.'
localVar.equals(""); // violation 'left .* of .* equals'
param.equals(""); // violation 'left .* of .* equals'

classVar.equals(""); // violation '.* left .* of .* equals .*.'
instanceVar.equals(""); // violation '.* left .* of .* equals .*.'
NewTest.classVar.equals(""); // violation '.* left .* of .* equals .*.'
this.classVar.equals(""); // violation '.* left .* of .* equals .*.'
this.instanceVar.equals(""); // violation '.* left .* of .* equals .*.'
classVar.equals(""); // violation 'left .* of .* equals'
instanceVar.equals(""); // violation 'left .* of .* equals'
NewTest.classVar.equals(""); // violation 'left .* of .* equals'
this.classVar.equals(""); // violation 'left .* of .* equals'
this.instanceVar.equals(""); // violation 'left .* of .* equals'

NewTest testObj = new NewTest("");
this.testObj.instanceVar.equals(""); // not violated, too confusing
Expand All @@ -272,13 +272,13 @@ class Inner {
String instanceVarInner;

public void main() {
classVar.equals(""); // violation '.* left .* of .* equals .*.'
instanceVar.equals(""); // violation '.* left .* of .* equals .*.'
NewTest.classVar.equals(""); // violation '.* left .* of .* equals .*.'
classVar.equals(""); // violation 'left .* of .* equals'
instanceVar.equals(""); // violation 'left .* of .* equals'
NewTest.classVar.equals(""); // violation 'left .* of .* equals'

instanceVarInner.equals(""); // violation '.* left .* of .* equals .*.'
this.instanceVarInner.equals(""); // violation '.* left .* of .* equals .*.'
localVar.equals(""); // violation '.* left .* of .* equals .*.'
instanceVarInner.equals(""); // violation 'left .* of .* equals'
this.instanceVarInner.equals(""); // violation 'left .* of .* equals'
localVar.equals(""); // violation 'left .* of .* equals'

NewTest testObj = new NewTest("");
testObj.instanceVar.equals(""); // not violated
Expand All @@ -299,34 +299,34 @@ public void main() {
}
static {
final String s = "";
s.equals(""); // violation '.* left .* of .* equals .*.'
s.equals(""); // violation 'left .* of .* equals'
{
final String x = "";
class A {
void foo() {
s.equals(""); // violation '.* left .* of .* equals .*.'
x.equals(""); // violation '.* left .* of .* equals .*.'
s.equals(""); // violation 'left .* of .* equals'
x.equals(""); // violation 'left .* of .* equals'
}
}
}
}
void foo(String param) {
try {
param.equals(""); // violation '.* left .* of .* equals .*.'
param.equals(""); // violation 'left .* of .* equals'
do {
String s = "";
s.equals(""); // violation '.* left .* of .* equals .*.'
} while (param.equals("")); // violation '.* left .* of .* equals .*.'
s.equals(""); // violation 'left .* of .* equals'
} while (param.equals("")); // violation 'left .* of .* equals'
} catch (Exception e) {
while (param.equals("")) { // violation '.* left .* of .* equals .*.'
for (String s = ""; s.equals(""); ){ // violation '.* left .* of .* equals .*.'
if (s.equals("")) { // violation '.* left .* of .* equals .*.'
while (param.equals("")) { // violation 'left .* of .* equals'
for (String s = ""; s.equals(""); ){ // violation 'left .* of .* equals'
if (s.equals("")) { // violation 'left .* of .* equals'
synchronized (this) {
switch (s) {
case "1": String str = ""; str.equals(""); // violation '.* left .* of .* equals .*.'
case "2": s.equals(""); str = ""; // violation '.* left .* of .* equals .*.'
str.equals(""); // violation '.* left .* of .* equals .*.'
case "3": param.equals(""); // violation '.* left .* of .* equals .*.'
case "1": String str = ""; str.equals(""); // violation 'left .* of .* equals'
case "2": s.equals(""); str = ""; // violation 'left .* of .* equals'
str.equals(""); // violation 'left .* of .* equals'
case "3": param.equals(""); // violation 'left .* of .* equals'
break;
}
}
Expand All @@ -339,18 +339,18 @@ static class Nested {
static String nestedClassVar;
String nestedInstanceVar;
public void method() {
classVar.equals(""); // violation '.* left .* of .* equals .*.'
NewTest.classVar.equals(""); // violation '.* left .* of .* equals .*.'
this.nestedInstanceVar.equals(""); // violation '.* left .* of .* equals .*.'
nestedClassVar.equals(""); // violation '.* left .* of .* equals .*.'
nestedInstanceVar.equals(""); // violation '.* left .* of .* equals .*.'
classVar.equals(""); // violation 'left .* of .* equals'
NewTest.classVar.equals(""); // violation 'left .* of .* equals'
this.nestedInstanceVar.equals(""); // violation 'left .* of .* equals'
nestedClassVar.equals(""); // violation 'left .* of .* equals'
nestedInstanceVar.equals(""); // violation 'left .* of .* equals'

class Inner {
public void method() {
classVar.equals(""); // violation '.* left .* of .* equals .*.'
NewTest.classVar.equals(""); // violation '.* left .* of .* equals .*.'
nestedClassVar.equals(""); // violation '.* left .* of .* equals .*.'
nestedInstanceVar.equals(""); // violation '.* left .* of .* equals .*.'
classVar.equals(""); // violation 'left .* of .* equals'
NewTest.classVar.equals(""); // violation 'left .* of .* equals'
nestedClassVar.equals(""); // violation 'left .* of .* equals'
nestedInstanceVar.equals(""); // violation 'left .* of .* equals'
}
}
}
Expand All @@ -361,7 +361,7 @@ enum EmbeddedEnum {
C(1212) {
String constDefVar;
public void doSomething() {
constDefVar.equals(""); // violation '.* left .* of .* equals .*.'
constDefVar.equals(""); // violation 'left .* of .* equals'
}
};

Expand All @@ -372,7 +372,7 @@ public void doSomething() {
}

public static void doSomethingStatic() {
enumStatic.equals(""); // violation '.* left .* of .* equals .*.'
enumStatic.equals(""); // violation 'left .* of .* equals'
enumStatic.equals(null);
}
static String enumStatic;
Expand All @@ -398,7 +398,7 @@ public static void main(String[] args) {
Runnable anonym = new Runnable() {
String nullableStr = null;
public void run() {
nullableStr.equals("Null"); // violation '.* left .* of .* equals .*.'
nullableStr.equals("Null"); // violation 'left .* of .* equals'
};
};
Object nullableStr = new Object();
Expand All @@ -419,13 +419,13 @@ class TestConcatenations {
String s = null;

void foo() {
s.equals(s + s); // violation '.* left .* of .* equals .*.'
s.equals("a" + "b"); // violation '.* left .* of .* equals .*.'
s.equals(getInt() + s); // violation '.* left .* of .* equals .*.'
s.equals(s + s); // violation 'left .* of .* equals'
s.equals("a" + "b"); // violation 'left .* of .* equals'
s.equals(getInt() + s); // violation 'left .* of .* equals'
s.equals(getInt() + getInt());
s.endsWith("a");
String s = "";
if (!s.equals("Hello[EOL]" + System.getProperty("line.separator"))) // violation '.* left .* of .* equals .*.'
if (!s.equals("Hello[EOL]" + System.getProperty("line.separator"))) // violation 'left .* of .* equals'
foo();
}

Expand Down
Loading