diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java index 400a7dfe4..604cf1ee1 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/Git.java @@ -43,6 +43,8 @@ */ package org.eclipse.jgit.api; +import static org.eclipse.jgit.lib.Constants.checkNotNull; + import java.io.File; import java.io.IOException; @@ -220,9 +222,7 @@ public class Git implements AutoCloseable { } Git(Repository repo, boolean closeRepo) { - if (repo == null) - throw new NullPointerException(); - this.repo = repo; + this.repo = checkNotNull(repo); this.closeRepo = closeRepo; } diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java index 4c5519696..e724c1525 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/Constants.java @@ -58,7 +58,7 @@ import org.eclipse.jgit.internal.JGitText; import org.eclipse.jgit.util.MutableInteger; /** - * Misc. constants used throughout JGit. + * Misc. constants and helpers used throughout JGit. */ @SuppressWarnings("nls") public final class Constants { @@ -465,6 +465,30 @@ public final class Constants { */ public static final String ATTR_BUILTIN_BINARY_MERGER = "binary"; //$NON-NLS-1$ + /** + * Null checker for a {@code @NonNull} parameter. + * + *

This is a briefer equivalent to + *

+	 * if (arg == null) {
+	 *   throw new NullPointerException();
+	 * }
+	 * 
+ * with the added benefit that it does not trigger nullness warnings when + * {@code arg} is declared as {@code @NonNull}. + * + * @param arg a non-null object reference + * @return arg + * @throws NullPointerException if {@code arg} is null + * @since 5.4 + */ + public static T checkNotNull(T arg) { + if (arg == null) { + throw new NullPointerException(); + } + return arg; + } + /** * Create a new digest function for objects. *