Merge branch 'stable-3.1' Change-Id: I2c1e18b02c6f5cad3cc71a639449689a053a0e65
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfig.java b/src/main/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfig.java index 08f73c5..20c6c4a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfig.java
@@ -94,16 +94,17 @@ } public boolean isEnabled(Project.NameKey projectNK, String refName) { - ProjectState projectState = projectCache.get(projectNK); - if (projectState == null) { + Optional<ProjectState> projectState = projectCache.get(projectNK); + if (!projectState.isPresent()) { log.error( "Failed to check if {} is enabled for project {}: Project not found", pluginName, projectNK.get()); return false; } - return isEnforcedByAnyParentProject(refName, projectState) - || (isEnabledForProject(projectState) && isEnabledForBranch(projectState, refName)); + return isEnforcedByAnyParentProject(refName, projectState.get()) + || (isEnabledForProject(projectState.get()) + && isEnabledForBranch(projectState.get(), refName)); } private boolean isEnforcedByAnyParentProject(String refName, ProjectState projectState) { @@ -147,12 +148,14 @@ // Project association public Optional<String> getItsProjectName(Project.NameKey projectNK) { - ProjectState projectState = projectCache.get(projectNK); - if (projectState == null) { + Optional<ProjectState> projectState = projectCache.get(projectNK); + if (!projectState.isPresent()) { return Optional.empty(); } return Optional.ofNullable( - pluginCfgFactory.getFromProjectConfig(projectState, pluginName).getString("its-project")); + pluginCfgFactory + .getFromProjectConfig(projectState.get(), pluginName) + .getString("its-project")); } // Issue association -------------------------------------------------------- @@ -266,7 +269,7 @@ private List<CommentLinkInfo> getCommentLinkInfo(final String commentlinkName) { NameKey projectName = currentProjectName.get(); if (projectName != null) { - List<CommentLinkInfo> commentlinks = projectCache.get(projectName).getCommentLinks(); + List<CommentLinkInfo> commentlinks = projectCache.get(projectName).get().getCommentLinks(); return commentlinks.stream() .filter(input -> input.name.equals(commentlinkName)) .collect(toList());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateComment.java b/src/main/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateComment.java index def8f4f..c5799d2 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateComment.java +++ b/src/main/java/com/googlesource/gerrit/plugins/its/base/validation/ItsValidateComment.java
@@ -108,7 +108,8 @@ sb.append(" Issue-Tracker"); details = sb.toString(); - ret.add(commitValidationFailure(synopsis, details, ItsExistenceCheckResult.DOESNT_EXIST)); + ret.add( + commitValidationFailure(synopsis, details, ItsExistenceCheckResult.DOESNT_EXIST)); } } else if (!itsConfig .getDummyIssuePattern()
diff --git a/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheImpl.java b/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheImpl.java index 72fe43f..4dc46d3 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheImpl.java +++ b/src/main/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheImpl.java
@@ -98,7 +98,10 @@ @Override public List<Rule> load(String projectName) throws IOException { - ProjectState project = projectCache.checkedGet(Project.nameKey(projectName)); + ProjectState project = + projectCache + .get(Project.nameKey(projectName)) + .orElseThrow(() -> new IOException("Can't load " + projectName)); List<Rule> projectRules = readRulesFrom(project); if (projectRules.isEmpty()) { for (ProjectState parent : project.parents()) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfigTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfigTest.java index 3379908..34068bb 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfigTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/its/base/its/ItsConfigTest.java
@@ -56,8 +56,8 @@ String enabled, String itsProject, String parentEnabled, String[] branches) { ProjectState projectState = mock(ProjectState.class); - when(projectCache.get(Project.nameKey("testProject"))).thenReturn(projectState); - when(projectCache.get(Project.nameKey("parentProject"))).thenReturn(projectState); + when(projectCache.get(Project.nameKey("testProject"))).thenReturn(Optional.of(projectState)); + when(projectCache.get(Project.nameKey("parentProject"))).thenReturn(Optional.of(projectState)); Iterable<ProjectState> parents; if (parentEnabled == null) {
diff --git a/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheTest.java b/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheTest.java index 6b83097..592722c 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheTest.java +++ b/src/test/java/com/googlesource/gerrit/plugins/its/base/workflow/ItsRulesProjectCacheTest.java
@@ -36,6 +36,7 @@ import java.io.IOException; import java.util.Collection; import java.util.List; +import java.util.Optional; import org.eclipse.jgit.lib.Config; public class ItsRulesProjectCacheTest extends LoggingMockingTestCase { @@ -90,7 +91,7 @@ ProjectLevelConfig projectLevelConfigPlugin = mock(ProjectLevelConfig.class); when(projectLevelConfigPlugin.get()).thenReturn(new Config()); when(projectState.getConfig(RuleBaseKind.ITS.fileName)).thenReturn(projectLevelConfigPlugin); - when(projectCache.checkedGet(Project.nameKey(TEST_PROJECT))).thenReturn(projectState); + when(projectCache.get(Project.nameKey(TEST_PROJECT))).thenReturn(Optional.of(projectState)); when(rulesConfigReader.getRulesFromConfig(any(Config.class))) .thenReturn(ImmutableList.of(rule1)) .thenReturn(ImmutableList.of()); @@ -132,7 +133,7 @@ when(parentProjectState.getConfig(RuleBaseKind.ITS.fileName)) .thenReturn(parentProjectConfigPlugin); when(projectState.parents()).thenReturn(FluentIterable.of(parentProjectState)); - when(projectCache.checkedGet(Project.nameKey(TEST_PROJECT))).thenReturn(projectState); + when(projectCache.get(Project.nameKey(TEST_PROJECT))).thenReturn(Optional.of(projectState)); when(rulesConfigReader.getRulesFromConfig(any(Config.class))) .thenReturn(ImmutableList.of())