Skip to content

Commit

Permalink
Issue #10943: Message validation in our Inputs should not have traili…
Browse files Browse the repository at this point in the history
…ng and leading '.*'
  • Loading branch information
Vyom-Yadav authored and romani committed Nov 27, 2021
1 parent 3895bde commit 4bd9856
Show file tree
Hide file tree
Showing 11 changed files with 125 additions and 125 deletions.
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
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
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
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
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

0 comments on commit 4bd9856

Please sign in to comment.