TSK-1690: Removed toString() methods from Exceptions to prevent unspecific error messages
This commit is contained in:
parent
1bab31e43c
commit
b511973c14
|
@ -11,9 +11,4 @@ public class AutocommitFailedException extends TaskanaRuntimeException {
|
||||||
public AutocommitFailedException(Throwable cause) {
|
public AutocommitFailedException(Throwable cause) {
|
||||||
super("Autocommit failed", ErrorCode.of(ERROR_KEY), cause);
|
super("Autocommit failed", ErrorCode.of(ERROR_KEY), cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "AutocommitFailedException{}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,9 +23,4 @@ public class ConcurrencyException extends TaskanaException {
|
||||||
public String getEntityId() {
|
public String getEntityId() {
|
||||||
return entityId;
|
return entityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "ConcurrencyException{}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,4 @@ public class ConnectionNotSetException extends TaskanaRuntimeException {
|
||||||
public ConnectionNotSetException() {
|
public ConnectionNotSetException() {
|
||||||
super("Connection not set", ErrorCode.of(ERROR_KEY));
|
super("Connection not set", ErrorCode.of(ERROR_KEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "ConnectionNotSetException{}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,4 @@ public class DomainNotFoundException extends NotFoundException {
|
||||||
public String getDomain() {
|
public String getDomain() {
|
||||||
return domain;
|
return domain;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "DomainNotFoundException [domain=" + domain + "]";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,4 @@ public class InvalidArgumentException extends TaskanaException {
|
||||||
public InvalidArgumentException(String msg, Throwable cause) {
|
public InvalidArgumentException(String msg, Throwable cause) {
|
||||||
super(msg, ErrorCode.of(ERROR_KEY), cause);
|
super(msg, ErrorCode.of(ERROR_KEY), cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "InvalidArgumentException{}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,13 +33,4 @@ public class MismatchedRoleException extends NotAuthorizedException {
|
||||||
public String getCurrentUserId() {
|
public String getCurrentUserId() {
|
||||||
return currentUserId;
|
return currentUserId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "MismatchedRoleException [currentUserId="
|
|
||||||
+ currentUserId
|
|
||||||
+ ", roles="
|
|
||||||
+ Arrays.toString(roles)
|
|
||||||
+ "]";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,4 @@ public class NotAuthorizedException extends TaskanaException {
|
||||||
protected NotAuthorizedException(String msg, ErrorCode errorCode) {
|
protected NotAuthorizedException(String msg, ErrorCode errorCode) {
|
||||||
super(msg, errorCode);
|
super(msg, errorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "NotAuthorizedException{}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,4 @@ public class NotFoundException extends TaskanaException {
|
||||||
protected NotFoundException(String message, ErrorCode errorCode) {
|
protected NotFoundException(String message, ErrorCode errorCode) {
|
||||||
super(message, errorCode);
|
super(message, errorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "NotFoundException{}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,8 +13,4 @@ public class SystemException extends TaskanaRuntimeException {
|
||||||
super(msg, ErrorCode.of(ERROR_KEY), cause);
|
super(msg, ErrorCode.of(ERROR_KEY), cause);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "SystemException{}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,6 @@ public class TaskanaException extends Exception {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "TaskanaException [errorCode=" + errorCode + "]";
|
return "TaskanaException [errorCode=" + errorCode + ", message=" + getMessage() + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,6 @@ public class TaskanaRuntimeException extends RuntimeException {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "TaskanaRuntimeException [errorCode=" + errorCode + "]";
|
return "TaskanaRuntimeException [errorCode=" + errorCode + ", message=" + getMessage() + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,4 @@ public class UnsupportedDatabaseException extends TaskanaRuntimeException {
|
||||||
public String getDatabaseProductName() {
|
public String getDatabaseProductName() {
|
||||||
return databaseProductName;
|
return databaseProductName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "UnsupportedDatabaseException [databaseProductName=" + databaseProductName + "]";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,9 +22,4 @@ public class WrongCustomHolidayFormatException extends TaskanaException {
|
||||||
public String getCustomHoliday() {
|
public String getCustomHoliday() {
|
||||||
return customHoliday;
|
return customHoliday;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "WrongCustomHolidayFormatException [customHoliday=" + customHoliday + "]";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import com.tngtech.archunit.lang.ArchCondition;
|
||||||
import com.tngtech.archunit.lang.ArchRule;
|
import com.tngtech.archunit.lang.ArchRule;
|
||||||
import com.tngtech.archunit.lang.ConditionEvents;
|
import com.tngtech.archunit.lang.ConditionEvents;
|
||||||
import com.tngtech.archunit.lang.SimpleConditionEvent;
|
import com.tngtech.archunit.lang.SimpleConditionEvent;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -153,6 +154,34 @@ class ArchitectureTest {
|
||||||
myRule.check(importedClasses);
|
myRule.check(importedClasses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void exceptionsThatShouldNotHaveToStringMethod() {
|
||||||
|
ArchRule myRule =
|
||||||
|
classes()
|
||||||
|
.that()
|
||||||
|
.areAssignableTo(TaskanaException.class)
|
||||||
|
.or()
|
||||||
|
.areAssignableTo(TaskanaRuntimeException.class)
|
||||||
|
.and()
|
||||||
|
.doNotBelongToAnyOf(TaskanaRuntimeException.class, TaskanaException.class)
|
||||||
|
.should(notImplementToString());
|
||||||
|
|
||||||
|
myRule.check(importedClasses);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void exceptionsThatShouldHaveToStringMethod() {
|
||||||
|
ArchRule myRule =
|
||||||
|
classes()
|
||||||
|
.that()
|
||||||
|
.areAssignableFrom(TaskanaRuntimeException.class)
|
||||||
|
.or()
|
||||||
|
.areAssignableFrom(TaskanaException.class)
|
||||||
|
.should(implementToString());
|
||||||
|
|
||||||
|
myRule.check(importedClasses);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void onlyExceptionsShouldResideInExceptionPackage() {
|
void onlyExceptionsShouldResideInExceptionPackage() {
|
||||||
ArchRule myRule =
|
ArchRule myRule =
|
||||||
|
@ -320,6 +349,43 @@ class ArchitectureTest {
|
||||||
rule.check(importedClasses);
|
rule.check(importedClasses);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ArchCondition<JavaClass> implementToString() {
|
||||||
|
return new ArchCondition<JavaClass>("implement toString()") {
|
||||||
|
@Override
|
||||||
|
public void check(JavaClass javaClass, ConditionEvents conditionEvents) {
|
||||||
|
boolean implementToString =
|
||||||
|
Arrays.stream(javaClass.reflect().getDeclaredMethods())
|
||||||
|
.map(Method::getName)
|
||||||
|
.anyMatch("toString"::equals);
|
||||||
|
if (!implementToString) {
|
||||||
|
conditionEvents.add(
|
||||||
|
SimpleConditionEvent.violated(
|
||||||
|
javaClass,
|
||||||
|
String.format(
|
||||||
|
"Class '%s' does not implement toString()", javaClass.getFullName())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private ArchCondition<JavaClass> notImplementToString() {
|
||||||
|
return new ArchCondition<JavaClass>("not implement toString()") {
|
||||||
|
@Override
|
||||||
|
public void check(JavaClass javaClass, ConditionEvents conditionEvents) {
|
||||||
|
boolean implementToString =
|
||||||
|
Arrays.stream(javaClass.reflect().getDeclaredMethods())
|
||||||
|
.map(Method::getName)
|
||||||
|
.anyMatch("toString"::equals);
|
||||||
|
if (implementToString) {
|
||||||
|
conditionEvents.add(
|
||||||
|
SimpleConditionEvent.violated(
|
||||||
|
javaClass,
|
||||||
|
String.format("Class '%s' does implement toString()", javaClass.getFullName())));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
private ArchCondition<JavaClass> beAnnotatedWithTestInstancePerClass() {
|
private ArchCondition<JavaClass> beAnnotatedWithTestInstancePerClass() {
|
||||||
return new ArchCondition<JavaClass>("be annotated with @TestInstance(Lifecycle.PER_CLASS)") {
|
return new ArchCondition<JavaClass>("be annotated with @TestInstance(Lifecycle.PER_CLASS)") {
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue