Merge "Fix typo in FileUtils.isStaleFileHandle() javadoc"
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java
index 87be813..7c1cbc3 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/BranchCommandTest.java
@@ -12,6 +12,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.fail;
 
 import java.util.List;
@@ -160,6 +161,20 @@ public void testCreateAndList() throws Exception {
 				- allBefore);
 	}
 
+  @Test
+  public void testExistingNameInBothBranchesAndTags() throws Exception {
+    git.branchCreate().setName("test").call();
+    git.tag().setName("test").call();
+
+    // existing name not allowed w/o force
+	assertThrows("Create branch with existing ref name should fail",
+			RefAlreadyExistsException.class,
+			() -> git.branchCreate().setName("test").call());
+
+    // existing name allowed with force option
+    git.branchCreate().setName("test").setForce(true).call();
+  }
+
 	@Test(expected = InvalidRefNameException.class)
 	public void testInvalidBranchHEAD() throws Exception {
 		git.branchCreate().setName("HEAD").call();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/CreateBranchCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/CreateBranchCommand.java
index e1efb86..013e0ff 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/api/CreateBranchCommand.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/CreateBranchCommand.java
@@ -88,9 +88,7 @@ public Ref call() throws GitAPIException, RefAlreadyExistsException,
 		checkCallable();
 		processOptions();
 		try (RevWalk revWalk = new RevWalk(repo)) {
-			Ref refToCheck = repo.findRef(name);
-			boolean exists = refToCheck != null
-					&& refToCheck.getName().startsWith(R_HEADS);
+			boolean exists = repo.findRef(R_HEADS + name) != null;
 			if (!force && exists)
 				throw new RefAlreadyExistsException(MessageFormat.format(
 						JGitText.get().refAlreadyExists1, name));