From ea197eb9e065ecc9de01f6effeffec775831cf8c Mon Sep 17 00:00:00 2001 From: Georg Seibt <seibt@fim.uni-passau.de> Date: Mon, 31 Oct 2016 13:13:37 +0100 Subject: [PATCH] add a warning in case of failure to the checkAncestry(...) method --- .../fim/seibt/gitwrapper/repo/Commit.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java index 6848dd0..cba3eca 100644 --- a/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java +++ b/src/de/uni_passau/fim/seibt/gitwrapper/repo/Commit.java @@ -4,10 +4,15 @@ import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneId; import java.util.Optional; +import java.util.function.Function; import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; +import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor; +import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.ExecRes; +import de.uni_passau.fim.seibt.gitwrapper.process.ToolWrapper; + /** * A {@link Commit} made in a {@link Repository}. */ @@ -52,8 +57,22 @@ public class Commit extends Reference { * <code>false</code>, if not and an {@link Optional#EMPTY empty optional}, if an error occurred. */ public Optional<Boolean> checkAncestry(Commit ancestor) { - return git.exec(repo.getDir(), " merge-base", "--is-ancestor", ancestor.getId(), id).map(execRes -> - execRes.exitCode == 0 ? Boolean.TRUE : execRes.exitCode == 1 ? Boolean.FALSE : null); + Optional<ExecRes> res = git.exec(repo.getDir(), "merge-base", "--is-ancestor", ancestor.getId(), id); + Function<ExecRes, Boolean> toBoolean = execRes -> { + + if (execRes.exitCode == 0) { + return Boolean.TRUE; + } + + if (execRes.exitCode == 1) { + return Boolean.FALSE; + } + + LOG.warning(() -> "Failed to determine whether '" + ancestor + "' is an ancestor of '" + this + "'."); + return null; + }; + + return res.map(toBoolean); } /** -- GitLab