diff --git a/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandBuilder.java b/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandBuilder.java
index a751832d8f..6cbf2caa8c 100644
--- a/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandBuilder.java
+++ b/scm-core/src/main/java/sonia/scm/repository/api/MergeCommandBuilder.java
@@ -32,6 +32,7 @@ import sonia.scm.repository.spi.MergeConflictResult;
import sonia.scm.repository.util.AuthorUtil;
import sonia.scm.user.EMail;
+import javax.annotation.Nullable;
import java.util.Set;
/**
@@ -76,12 +77,13 @@ import java.util.Set;
*/
public class MergeCommandBuilder {
- private final EMail eMail;
-
private final MergeCommand mergeCommand;
private final MergeCommandRequest request = new MergeCommandRequest();
- MergeCommandBuilder(MergeCommand mergeCommand, EMail eMail) {
+ @Nullable
+ private final EMail eMail;
+
+ MergeCommandBuilder(MergeCommand mergeCommand, @Nullable EMail eMail) {
this.mergeCommand = mergeCommand;
this.eMail = eMail;
}
diff --git a/scm-core/src/main/java/sonia/scm/repository/api/ModifyCommandBuilder.java b/scm-core/src/main/java/sonia/scm/repository/api/ModifyCommandBuilder.java
index 795de5d43d..f2b11a00a0 100644
--- a/scm-core/src/main/java/sonia/scm/repository/api/ModifyCommandBuilder.java
+++ b/scm-core/src/main/java/sonia/scm/repository/api/ModifyCommandBuilder.java
@@ -38,6 +38,7 @@ import sonia.scm.repository.work.WorkdirProvider;
import sonia.scm.user.EMail;
import sonia.scm.util.IOUtil;
+import javax.annotation.Nullable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -52,7 +53,6 @@ import java.util.function.Consumer;
* default a {@link sonia.scm.AlreadyExistsException} will be thrown)
*
modify existing files ({@link #modifyFile(String)}
* delete existing files ({@link #deleteFile(String)}
- * move/rename existing files ({@link #moveFile(String, String)}
*
*
* You can collect multiple changes before they are executed with a call to {@link #execute()}.
@@ -73,14 +73,15 @@ public class ModifyCommandBuilder {
private static final Logger LOG = LoggerFactory.getLogger(ModifyCommandBuilder.class);
- private final EMail eMail;
-
private final ModifyCommand command;
private final File workdir;
+ @Nullable
+ private final EMail eMail;
+
private final ModifyCommandRequest request = new ModifyCommandRequest();
- ModifyCommandBuilder(ModifyCommand command, WorkdirProvider workdirProvider, EMail eMail) {
+ ModifyCommandBuilder(ModifyCommand command, WorkdirProvider workdirProvider, @Nullable EMail eMail) {
this.command = command;
this.workdir = workdirProvider.createNewWorkdir();
this.eMail = eMail;
diff --git a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java
index 029dc6fa34..aa2a41782d 100644
--- a/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java
+++ b/scm-core/src/main/java/sonia/scm/repository/api/RepositoryService.java
@@ -36,6 +36,7 @@ import sonia.scm.repository.spi.RepositoryServiceProvider;
import sonia.scm.repository.work.WorkdirProvider;
import sonia.scm.user.EMail;
+import javax.annotation.Nullable;
import java.io.Closeable;
import java.io.IOException;
import java.util.Set;
@@ -85,9 +86,11 @@ public final class RepositoryService implements Closeable {
private final PreProcessorUtil preProcessorUtil;
private final RepositoryServiceProvider provider;
private final Repository repository;
- @SuppressWarnings("rawtypes")
+ @SuppressWarnings({"rawtypes", "java:S3740"})
private final Set protocolProviders;
private final WorkdirProvider workdirProvider;
+
+ @Nullable
private final EMail eMail;
/**
@@ -100,11 +103,12 @@ public final class RepositoryService implements Closeable {
* @param eMail utility to compute email addresses if missing
*/
RepositoryService(CacheManager cacheManager,
- RepositoryServiceProvider provider, Repository repository,
+ RepositoryServiceProvider provider,
+ Repository repository,
PreProcessorUtil preProcessorUtil,
- @SuppressWarnings("rawtypes") Set protocolProviders,
+ @SuppressWarnings({"rawtypes", "java:S3740"}) Set protocolProviders,
WorkdirProvider workdirProvider,
- EMail eMail) {
+ @Nullable EMail eMail) {
this.cacheManager = cacheManager;
this.provider = provider;
this.repository = repository;
@@ -452,7 +456,7 @@ public final class RepositoryService implements Closeable {
.map(this::createProviderInstanceForRepository);
}
- @SuppressWarnings("rawtypes")
+ @SuppressWarnings({"rawtypes", "java:S3740"})
private ScmProtocol createProviderInstanceForRepository(ScmProtocolProvider protocolProvider) {
return protocolProvider.get(repository);
}
diff --git a/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java b/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java
index 1df0e5ef76..21142ba95d 100644
--- a/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java
+++ b/scm-core/src/main/java/sonia/scm/repository/util/AuthorUtil.java
@@ -30,19 +30,21 @@ import sonia.scm.repository.Person;
import sonia.scm.user.EMail;
import sonia.scm.user.User;
+import javax.annotation.Nullable;
+
public class AuthorUtil {
public static void setAuthorIfNotAvailable(CommandWithAuthor request) {
setAuthorIfNotAvailable(request, null);
}
- public static void setAuthorIfNotAvailable(CommandWithAuthor request, EMail eMail) {
+ public static void setAuthorIfNotAvailable(CommandWithAuthor request, @Nullable EMail eMail) {
if (request.getAuthor() == null) {
request.setAuthor(createAuthorFromSubject(eMail));
}
}
- private static Person createAuthorFromSubject(EMail eMail) {
+ private static Person createAuthorFromSubject(@Nullable EMail eMail) {
Subject subject = SecurityUtils.getSubject();
User user = subject.getPrincipals().oneByType(User.class);
String name = user.getDisplayName();