Source:
<code>void validateMergeHash(@NonNull GHRepository repo) throws IOException { if (!isMerge()) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Not a merge head"); } else if (this.mergeHash == null) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Unknown merge state " + this.toString()); } else if (this.mergeHash == NOT_MERGEABLE_HASH) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Not mergeable " + this.toString()); } else { GHCommit commit = null; try { commit = repo.getCommit(this.mergeHash); } catch (FileNotFoundException e) { <START> throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : commit not found (" + this.mergeHash + "). Try close and reopen this PR to reset merge hash."); <END> } catch (IOException e) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : " + e.toString()); } assert(commit != null); List<String> parents = commit.getParentSHA1s(); if (parents.size() != 2 || !parents.contains(this.getBaseHash()) || !parents.contains(this.getPullHash())) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Head and base commits do match merge commit " + this.toString() ); } } }</code><technical_language>Sentence fragment: Try close reopen this PR reset merge hash. Wordy version Try closing reopening this PR reset merge hash. Terse version Close reopen PR reset merge hash</technical_language>

Target:
void validateMergeHash(@NonNull GHRepository repo) throws IOException { if (!isMerge()) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Not a merge head"); } else if (this.mergeHash == null) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Unknown merge state " + this.toString()); } else if (this.mergeHash == NOT_MERGEABLE_HASH) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Not mergeable " + this.toString()); } else { GHCommit commit = null; try { commit = repo.getCommit(this.mergeHash); } catch (FileNotFoundException e) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : commit not found (" + this.mergeHash + "). Close and reopen the PR to reset its merge hash."); } catch (IOException e) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : " + e.toString()); } assert(commit != null); List<String> parents = commit.getParentSHA1s(); if (parents.size() != 2 || !parents.contains(this.getBaseHash()) || !parents.contains(this.getPullHash())) { throw new AbortException("Invalid merge hash for pull request " + ((PullRequestSCMHead)this.getHead()).getNumber() + " : Head and base commits do match merge commit " + this.toString() ); } } }