diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java
index 6e38b29..903ced0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java
@@ -182,7 +182,7 @@
     if (addDebugMsg) {
       obj.dbgmsgs.user = getUserName();
       obj.dbgmsgs.project = changeData.change().getProject().get();
-      obj.dbgmsgs.branch = changeData.change().getDest().get();
+      obj.dbgmsgs.branch = changeData.change().getDest().branch();
       obj.dbgmsgs.errors = db.errors;
       obj.dbgmsgs.path2owners = Util.makeSortedMap(db.path2Owners);
       obj.dbgmsgs.owner2paths = Util.makeSortedMap(db.owner2Paths);
@@ -202,7 +202,7 @@
     ChangeData changeData = null;
     try {
       changeData = changeDataFactory.create(change);
-      if (changeData.change().getDest().get() == null) {
+      if (changeData.change().getDest().branch() == null) {
         if (!Checker.isExemptFromOwnerApproval(changeData)) {
           logger.atSevere().log("Cannot get branch of change: %d", changeData.getId().get());
         }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java b/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
index e3c9242..1659ea6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/findowners/Cache.java
@@ -120,7 +120,7 @@
       ChangeData changeData,
       int patchset)
       throws StorageException {
-    String branch = changeData.change().getDest().get();
+    String branch = changeData.change().getDest().branch();
     String dbKey = Cache.makeKey(changeData.getId().get(), patchset, repoManager);
     // TODO: get changed files of the given patchset?
     return get(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java b/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java
index acef31f..c1d2fd6 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/findowners/FindOwners.java
@@ -209,7 +209,7 @@
   }
 
   protected BranchApi createBranch(String branch) throws Exception {
-    return createBranch(new Branch.NameKey(project, branch));
+    return createBranch(Branch.nameKey(project, branch));
   }
 
   protected PushOneCommit.Result createChangeInBranch(
