Browse Source

[NO-JIRA] Remove reported code smells about usage of instanceof

tags/9.9.0.65466
Matteo Mara 1 year ago
parent
commit
295a87208f
20 changed files with 69 additions and 81 deletions
  1. 2
    4
      server/sonar-auth-ldap/src/main/java/org/sonar/auth/ldap/CallbackHandlerImpl.java
  2. 4
    4
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/VisitorsCrawler.java
  3. 4
    4
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/duplication/Duplication.java
  4. 6
    6
      server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistDuplicationDataStep.java
  5. 4
    4
      server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTaskInterruptedException.java
  6. 2
    2
      server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java
  7. 2
    2
      server/sonar-main/src/main/java/org/sonar/application/ProcessLauncherImpl.java
  8. 2
    5
      server/sonar-process/src/main/java/org/sonar/process/PluginFileWriteRule.java
  9. 11
    14
      server/sonar-server-common/src/main/java/org/sonar/server/es/BaseDoc.java
  10. 6
    6
      server/sonar-server-common/src/main/java/org/sonar/server/es/IndexDefinitionHash.java
  11. 2
    4
      server/sonar-server-common/src/main/java/org/sonar/server/es/metadata/MetadataIndexImpl.java
  12. 2
    2
      server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/FpOrWontFixEmailTemplate.java
  13. 1
    2
      server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/IssuesChangesNotificationSerializer.java
  14. 4
    4
      server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/InitFilter.java
  15. 2
    2
      server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/OAuth2CallbackFilter.java
  16. 2
    2
      server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/UserSessionInitializer.java
  17. 1
    2
      server/sonar-webserver-core/src/main/java/org/sonar/server/platform/web/RootFilter.java
  18. 2
    2
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/batch/ProjectAction.java
  19. 4
    4
      server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/PermissionUpdater.java
  20. 6
    6
      server/sonar-webserver-ws/src/main/java/org/sonar/server/ws/WebServiceEngine.java

+ 2
- 4
server/sonar-auth-ldap/src/main/java/org/sonar/auth/ldap/CallbackHandlerImpl.java View File

@@ -41,13 +41,11 @@ public class CallbackHandlerImpl implements CallbackHandler {
@Override
public void handle(Callback[] callbacks) throws UnsupportedCallbackException, IOException {
for (Callback callBack : callbacks) {
if (callBack instanceof NameCallback) {
if (callBack instanceof NameCallback nameCallback) {
// Handles username callback
NameCallback nameCallback = (NameCallback) callBack;
nameCallback.setName(name);
} else if (callBack instanceof PasswordCallback) {
} else if (callBack instanceof PasswordCallback passwordCallback) {
// Handles password callback
PasswordCallback passwordCallback = (PasswordCallback) callBack;
passwordCallback.setPassword(password.toCharArray());
} else {
throw new UnsupportedCallbackException(callBack, "Callback not supported");

+ 4
- 4
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/component/VisitorsCrawler.java View File

@@ -149,10 +149,10 @@ public class VisitorsCrawler implements ComponentCrawler {

@Override
public VisitorWrapper apply(@Nonnull ComponentVisitor componentVisitor) {
if (componentVisitor instanceof TypeAwareVisitor) {
return new TypeAwareVisitorWrapper((TypeAwareVisitor) componentVisitor);
} else if (componentVisitor instanceof PathAwareVisitor) {
return new PathAwareVisitorWrapper((PathAwareVisitor) componentVisitor);
if (componentVisitor instanceof TypeAwareVisitor typeAwareVisitor) {
return new TypeAwareVisitorWrapper(typeAwareVisitor);
} else if (componentVisitor instanceof PathAwareVisitor pathAwareVisitor) {
return new PathAwareVisitorWrapper(pathAwareVisitor);
} else {
throw new IllegalArgumentException("Only TypeAwareVisitor and PathAwareVisitor can be used");
}

+ 4
- 4
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/duplication/Duplication.java View File

@@ -147,11 +147,11 @@ public final class Duplication {
if (duplicate instanceof InnerDuplicate) {
return "";
}
if (duplicate instanceof InProjectDuplicate) {
return ((InProjectDuplicate) duplicate).getFile().getKey();
if (duplicate instanceof InProjectDuplicate inProjectDuplicate) {
return inProjectDuplicate.getFile().getKey();
}
if (duplicate instanceof CrossProjectDuplicate) {
return ((CrossProjectDuplicate) duplicate).getFileKey();
if (duplicate instanceof CrossProjectDuplicate crossProjectDuplicate) {
return crossProjectDuplicate.getFileKey();
}
throw new IllegalArgumentException("Unsupported type of Duplicate " + duplicate.getClass().getName());
}

+ 6
- 6
server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/PersistDuplicationDataStep.java View File

@@ -159,15 +159,15 @@ public class PersistDuplicationDataStep implements ComputationStep {
if (duplicate instanceof InnerDuplicate) {
// Duplication is on the same file
appendDuplication(xml, componentDbKey, duplicate);
} else if (duplicate instanceof InExtendedProjectDuplicate) {
} else if (duplicate instanceof InExtendedProjectDuplicate inExtendedProjectDuplicate) {
// Duplication is on a different file that is not saved in the DB
appendDuplication(xml, ((InExtendedProjectDuplicate) duplicate).getFile().getKey(), duplicate.getTextBlock(), true);
} else if (duplicate instanceof InProjectDuplicate) {
appendDuplication(xml, inExtendedProjectDuplicate.getFile().getKey(), duplicate.getTextBlock(), true);
} else if (duplicate instanceof InProjectDuplicate inProjectDuplicate) {
// Duplication is on a different file
appendDuplication(xml, ((InProjectDuplicate) duplicate).getFile().getKey(), duplicate);
} else if (duplicate instanceof CrossProjectDuplicate) {
appendDuplication(xml, inProjectDuplicate.getFile().getKey(), duplicate);
} else if (duplicate instanceof CrossProjectDuplicate crossProjectDuplicate) {
// Only componentKey is set for cross project duplications
String crossProjectComponentKey = ((CrossProjectDuplicate) duplicate).getFileKey();
String crossProjectComponentKey = crossProjectDuplicate.getFileKey();
appendDuplication(xml, crossProjectComponentKey, duplicate);
} else {
throw new IllegalArgumentException("Unsupported type of Duplicate " + duplicate.getClass().getName());

+ 4
- 4
server/sonar-ce-task/src/main/java/org/sonar/ce/task/CeTaskInterruptedException.java View File

@@ -37,8 +37,8 @@ public abstract class CeTaskInterruptedException extends RuntimeException {
}

public static Optional<CeTaskInterruptedException> isTaskInterruptedException(Throwable e) {
if (e instanceof CeTaskInterruptedException) {
return Optional.of((CeTaskInterruptedException) e);
if (e instanceof CeTaskInterruptedException ceTaskInterruptedException) {
return Optional.of(ceTaskInterruptedException);
}
return isCauseInterruptedException(e);
}
@@ -48,8 +48,8 @@ public abstract class CeTaskInterruptedException extends RuntimeException {
if (cause == null || cause == e) {
return Optional.empty();
}
if (cause instanceof CeTaskInterruptedException) {
return Optional.of((CeTaskInterruptedException) cause);
if (cause instanceof CeTaskInterruptedException ceTaskInterruptedException) {
return Optional.of(ceTaskInterruptedException);
}
return isCauseInterruptedException(cause);
}

+ 2
- 2
server/sonar-ce/src/main/java/org/sonar/ce/queue/InternalCeQueueImpl.java View File

@@ -154,8 +154,8 @@ public class InternalCeQueueImpl extends CeQueueImpl implements InternalCeQueue
if (stacktrace != null) {
activityDto.setErrorStacktrace(stacktrace);
}
if (error instanceof TypedException) {
activityDto.setErrorType(((TypedException) error).getType());
if (error instanceof TypedException typedException) {
activityDto.setErrorType(typedException.getType());
}
}


+ 2
- 2
server/sonar-main/src/main/java/org/sonar/application/ProcessLauncherImpl.java View File

@@ -93,8 +93,8 @@ public class ProcessLauncherImpl implements ProcessLauncher {
}

Process process;
if (command instanceof EsScriptCommand) {
process = launchExternal((EsScriptCommand) command);
if (command instanceof EsScriptCommand esScriptCommand) {
process = launchExternal(esScriptCommand);
} else if (command instanceof JavaCommand) {
process = launchJava((JavaCommand<?>) command);
} else {

+ 2
- 5
server/sonar-process/src/main/java/org/sonar/process/PluginFileWriteRule.java View File

@@ -44,11 +44,8 @@ public class PluginFileWriteRule implements PluginPolicyRule {

@Override
public boolean implies(Permission permission) {
if (permission instanceof FilePermission) {
FilePermission requestPermission = (FilePermission) permission;
if (blockedFilePermission.implies(requestPermission) && !tmpFilePermission.implies(requestPermission)) {
return false;
}
if (permission instanceof FilePermission requestPermission) {
return !blockedFilePermission.implies(requestPermission) || tmpFilePermission.implies(requestPermission);
}
return true;
}

+ 11
- 14
server/sonar-server-common/src/main/java/org/sonar/server/es/BaseDoc.java View File

@@ -51,12 +51,9 @@ public abstract class BaseDoc {
protected BaseDoc(IndexType indexType, Map<String, Object> fields) {
this.indexType = indexType;
this.fields = fields;
if (indexType instanceof IndexMainType) {
IndexMainType mainType = (IndexMainType) indexType;
if (mainType.getIndex().acceptsRelations()) {
setField(mainType.getIndex().getJoinField(), ImmutableMap.of("name", mainType.getType()));
setField(FIELD_INDEX_TYPE, mainType.getType());
}
if (indexType instanceof IndexMainType mainType && mainType.getIndex().acceptsRelations()) {
setField(mainType.getIndex().getJoinField(), ImmutableMap.of("name", mainType.getType()));
setField(FIELD_INDEX_TYPE, mainType.getType());
}
}

@@ -106,11 +103,11 @@ public abstract class BaseDoc {
public Date getNullableFieldAsDate(String key) {
Object val = getNullableField(key);
if (val != null) {
if (val instanceof Date) {
return (Date) val;
if (val instanceof Date date) {
return date;
}
if (val instanceof Number) {
return epochSecondsToDate((Number) val);
if (val instanceof Number number) {
return epochSecondsToDate(number);
}
return EsUtils.parseDateTime((String) val);
}
@@ -136,11 +133,11 @@ public abstract class BaseDoc {

public Date getFieldAsDate(String key) {
Object value = getField(key);
if (value instanceof Date) {
return (Date) value;
if (value instanceof Date date) {
return date;
}
if (value instanceof Number) {
return epochSecondsToDate((Number) value);
if (value instanceof Number number) {
return epochSecondsToDate(number);
}
return EsUtils.parseDateTime((String) value);
}

+ 6
- 6
server/sonar-server-common/src/main/java/org/sonar/server/es/IndexDefinitionHash.java View File

@@ -67,12 +67,12 @@ class IndexDefinitionHash {
}

private static void appendObject(StringBuilder sb, Object value) {
if (value instanceof Object[]) {
sb.append(Arrays.toString((Object[]) value));
} else if (value instanceof Map) {
appendMap(sb, (Map) value);
} else if (value instanceof IndexType) {
sb.append(((IndexType) value).format());
if (value instanceof Object[] arrayValue) {
sb.append(Arrays.toString(arrayValue));
} else if (value instanceof Map map) {
appendMap(sb, map);
} else if (value instanceof IndexType indexType) {
sb.append(indexType.format());
} else {
sb.append(value);
}

+ 2
- 4
server/sonar-server-common/src/main/java/org/sonar/server/es/metadata/MetadataIndexImpl.java View File

@@ -68,12 +68,10 @@ public class MetadataIndexImpl implements MetadataIndex {
}

private static String initializedId(IndexType indexType) {
if (indexType instanceof IndexMainType) {
IndexMainType mainType = (IndexMainType) indexType;
if (indexType instanceof IndexMainType mainType) {
return mainType.getIndex().getName() + "." + mainType.getType() + ".initialized";
}
if (indexType instanceof IndexRelationType) {
IndexRelationType relationType = (IndexRelationType) indexType;
if (indexType instanceof IndexRelationType relationType) {
IndexMainType mainType = relationType.getMainType();
return mainType.getIndex().getName() + "." + mainType.getType() + "." + relationType.getName() + ".initialized";
}

+ 2
- 2
server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/FpOrWontFixEmailTemplate.java View File

@@ -54,8 +54,8 @@ public class FpOrWontFixEmailTemplate extends IssueChangesEmailTemplate {
.setMessageId(getMessageId(notification.getResolution()))
.setSubject(buildSubject(notification))
.setHtmlMessage(buildMessage(notification));
if (notification.getChange() instanceof UserChange) {
User user = ((UserChange) notification.getChange()).getUser();
if (notification.getChange() instanceof UserChange userChange) {
User user = userChange.getUser();
emailMessage.setFrom(user.getName().orElse(user.getLogin()));
}
return emailMessage;

+ 1
- 2
server/sonar-server-common/src/main/java/org/sonar/server/issue/notification/IssuesChangesNotificationSerializer.java View File

@@ -222,8 +222,7 @@ public class IssuesChangesNotificationSerializer {

private static void serializeChange(IssuesChangesNotification notification, IssuesChangesNotificationBuilder.Change change) {
notification.setFieldValue(FIELD_CHANGE_DATE, String.valueOf(change.date));
if (change instanceof IssuesChangesNotificationBuilder.UserChange) {
IssuesChangesNotificationBuilder.UserChange userChange = (IssuesChangesNotificationBuilder.UserChange) change;
if (change instanceof IssuesChangesNotificationBuilder.UserChange userChange) {
User user = userChange.getUser();
notification.setFieldValue(FIELD_CHANGE_AUTHOR_UUID, user.getUuid());
notification.setFieldValue(FIELD_CHANGE_AUTHOR_LOGIN, user.getLogin());

+ 4
- 4
server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/InitFilter.java View File

@@ -73,11 +73,11 @@ public class InitFilter extends AuthenticationFilter {

private void handleProvider(HttpServletRequest request, HttpServletResponse response, IdentityProvider provider) {
try {
if (provider instanceof BaseIdentityProvider) {
handleBaseIdentityProvider(request, response, (BaseIdentityProvider) provider);
} else if (provider instanceof OAuth2IdentityProvider) {
if (provider instanceof BaseIdentityProvider baseIdentityProvider) {
handleBaseIdentityProvider(request, response, baseIdentityProvider);
} else if (provider instanceof OAuth2IdentityProvider oAuth2IdentityProvider) {
oAuthOAuth2AuthenticationParameters.init(request, response);
handleOAuth2IdentityProvider(request, response, (OAuth2IdentityProvider) provider);
handleOAuth2IdentityProvider(request, response, oAuth2IdentityProvider);
} else {
handleError(request, response, format("Unsupported IdentityProvider class: %s", provider.getClass()));
}

+ 2
- 2
server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/OAuth2CallbackFilter.java View File

@@ -71,8 +71,8 @@ public class OAuth2CallbackFilter extends AuthenticationFilter {

private void handleProvider(HttpServletRequest request, HttpServletResponse response, IdentityProvider provider) {
try {
if (provider instanceof OAuth2IdentityProvider) {
handleOAuth2Provider(response, request, (OAuth2IdentityProvider) provider);
if (provider instanceof OAuth2IdentityProvider oAuth2IdentityProvider) {
handleOAuth2Provider(response, request, oAuth2IdentityProvider);
} else {
handleError(request, response, format("Not an OAuth2IdentityProvider: %s", provider.getClass()));
}

+ 2
- 2
server/sonar-webserver-auth/src/main/java/org/sonar/server/authentication/UserSessionInitializer.java View File

@@ -141,8 +141,8 @@ public class UserSessionInitializer {
}

private static void checkTokenUserSession(HttpServletResponse response, UserSession session) {
if (session instanceof TokenUserSession) {
UserTokenDto userTokenDto = ((TokenUserSession) session).getUserToken();
if (session instanceof TokenUserSession tokenUserSession) {
UserTokenDto userTokenDto = tokenUserSession.getUserToken();
Optional.ofNullable(userTokenDto.getExpirationDate()).ifPresent(expirationDate -> response.addHeader(SQ_AUTHENTICATION_TOKEN_EXPIRATION, formatDateTime(expirationDate)));
}
}

+ 1
- 2
server/sonar-webserver-core/src/main/java/org/sonar/server/platform/web/RootFilter.java View File

@@ -58,8 +58,7 @@ public class RootFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
if (request instanceof HttpServletRequest httpRequest) {
HttpServletResponse httpResponse = (HttpServletResponse) response;
try {
chain.doFilter(new ServletRequestWrapper(httpRequest), httpResponse);

+ 2
- 2
server/sonar-webserver-webapi/src/main/java/org/sonar/server/batch/ProjectAction.java View File

@@ -103,8 +103,8 @@ public class ProjectAction implements BatchWsAction {

private static WsProjectResponse buildResponse(ProjectRepositories data) {
WsProjectResponse.Builder response = WsProjectResponse.newBuilder();
if (data instanceof SingleProjectRepository) {
response.putAllFileDataByPath(buildFileDataByPath((SingleProjectRepository) data));
if (data instanceof SingleProjectRepository singleProjectRepository) {
response.putAllFileDataByPath(buildFileDataByPath(singleProjectRepository));
} else {
response.putAllFileDataByModuleAndPath(buildFileDataByModuleAndPath((MultiModuleProjectRepository) data));
}

+ 4
- 4
server/sonar-webserver-webapi/src/main/java/org/sonar/server/permission/PermissionUpdater.java View File

@@ -55,11 +55,11 @@ public class PermissionUpdater {
}

private boolean doApply(DbSession dbSession, PermissionChange change) {
if (change instanceof UserPermissionChange) {
return userPermissionChanger.apply(dbSession, (UserPermissionChange) change);
if (change instanceof UserPermissionChange userPermissionChange) {
return userPermissionChanger.apply(dbSession, userPermissionChange);
}
if (change instanceof GroupPermissionChange) {
return groupPermissionChanger.apply(dbSession, (GroupPermissionChange) change);
if (change instanceof GroupPermissionChange groupPermissionChange) {
return groupPermissionChanger.apply(dbSession, groupPermissionChange);
}
throw new UnsupportedOperationException("Unsupported permission change: " + change.getClass());


+ 6
- 6
server/sonar-webserver-ws/src/main/java/org/sonar/server/ws/WebServiceEngine.java View File

@@ -102,9 +102,9 @@ public class WebServiceEngine implements LocalConnector, Startable {
ActionExtractor actionExtractor = new ActionExtractor(request.getPath());
WebService.Action action = getAction(actionExtractor);
checkFound(action, "Unknown url : %s", request.getPath());
if (request instanceof ValidatingRequest) {
((ValidatingRequest) request).setAction(action);
((ValidatingRequest) request).setLocalConnector(this);
if (request instanceof ValidatingRequest validatingRequest) {
validatingRequest.setAction(action);
validatingRequest.setLocalConnector(this);
}
checkActionExtension(actionExtractor.getExtension());
verifyRequest(action, request);
@@ -160,8 +160,8 @@ public class WebServiceEngine implements LocalConnector, Startable {
}

// response is not committed, status and content can be changed to return the error
if (stream instanceof ServletResponse.ServletStream) {
((ServletResponse.ServletStream) stream).reset();
if (stream instanceof ServletResponse.ServletStream servletStream) {
servletStream.reset();
}
stream.setStatus(status);
stream.setMediaType(MediaTypes.JSON);
@@ -189,7 +189,7 @@ public class WebServiceEngine implements LocalConnector, Startable {
private static boolean isResponseCommitted(Response response) {
Response.Stream stream = response.stream();
// Request has been aborted by the client or the response was partially streamed, nothing can been done as Tomcat has committed the response
return stream instanceof ServletResponse.ServletStream && ((ServletResponse.ServletStream) stream).response().isCommitted();
return stream instanceof ServletResponse.ServletStream servletStream && servletStream.response().isCommitted();
}

public static void writeErrors(JsonWriter json, List<String> errorMessages) {

Loading…
Cancel
Save