Merge "Remove asciidoc.conf"
diff --git a/.buckconfig b/.buckconfig
index bb55e59..e60c7cd5 100644
--- a/.buckconfig
+++ b/.buckconfig
@@ -2,6 +2,7 @@
   api = //:api
   api_deploy = //tools/maven:deploy
   api_install = //tools/maven:install
+  docs = //Documentation:html
   download = //tools:download
   download_sources = //tools:download_sources
   gerrit = //:gerrit
diff --git a/Documentation/Makefile b/Documentation/Makefile
deleted file mode 100644
index 59de209..0000000
--- a/Documentation/Makefile
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-ASCIIDOC       ?= asciidoc
-ASCIIDOC_EXTRA ?=
-ASCIIDOC_VER   ?= 8.6.3
-SVN            ?= svn
-PUB_ROOT       ?= https://gerrit-documentation.googlecode.com/svn/Documentation
-
-all: html
-
-clean:
-	rm -f *.html
-	rm -rf $(LOCAL_ROOT)
-
-ASCIIDOC_EXE := $(shell which $(ASCIIDOC))
-ifeq ($(wildcard $(ASCIIDOC_EXE)),)
-  $(error $(ASCIIDOC) must be available)
-else
-  ASCIIDOC_OK := $(shell expr `asciidoc --version | cut -f2 -d' '` \>= $(ASCIIDOC_VER))
-  ifeq ($(ASCIIDOC_OK),0)
-    $(error $(ASCIIDOC) version $(ASCIIDOC_VER) or higher is required)
-  endif
-endif
-
-ifeq ($(origin VERSION), undefined)
-  VERSION := $(shell ./GEN-DOC-VERSION 2>/dev/null)
-endif
-
-DOC_HTML      := $(patsubst %.txt,%.html,$(wildcard *.txt))
-LOCAL_ROOT    := .published
-COMMIT        := $(shell git describe HEAD | sed s/^v//)
-PUB_DIR       := $(PUB_ROOT)/$(VERSION)
-PRIOR          = PRIOR
-
-ifeq ($(VERSION),)
-  REVISION = $(COMMIT)
-else
-  ifeq ($(VERSION),$(COMMIT))
-    REVISION := $(VERSION)
-  else
-    REVISION := $(VERSION) (from v$(COMMIT))
-  endif
-endif
-
-html: $(DOC_HTML)
-
-update: html
-ifeq ($(VERSION),)
-	./GEN-DOC-VERSION
-endif
-	@-rm -rf $(LOCAL_ROOT)
-	@echo "Checking out current $(VERSION)"
-	@if ! $(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) 2>/dev/null ; then \
-		echo "Copying $(PRIOR) to $(VERSION) ..." && \
-		$(SVN) cp -m "Create $(VERSION) documentation" $(PUB_ROOT)/$(PRIOR) $(PUB_DIR) && \
-		$(SVN) checkout $(PUB_DIR) $(LOCAL_ROOT) ; \
-	fi
-	@rm -f $(LOCAL_ROOT)/*.html
-	@cp *.html $(LOCAL_ROOT)
-	@cd $(LOCAL_ROOT) && \
-	  r=`$(SVN) status | perl -ne 'print if s/^!  *//' ` && \
-	  if [ -n "$$r" ]; then $(SVN) rm $$r; fi && \
-	  a=`$(SVN) status | perl -ne 'print if s/^\?  *//' ` && \
-	  if [ -n "$$a" ]; then \
-	    $(SVN) add $$a && \
-	    $(SVN) propset svn:mime-type text/html $$a ; \
-	    fi && \
-	  echo "Committing $(VERSION) at v$(COMMIT)" && \
-	  $(SVN) commit -m "Updated $(VERSION) documentation to v$(COMMIT)"
-	@-rm -rf $(LOCAL_ROOT)
-
-$(DOC_HTML): %.html : %.txt
-	@echo "FORMAT $@"
-	@rm -f $@+ $@
-	@$(ASCIIDOC) -a toc \
-		-a data-uri \
-		-a 'revision=$(REVISION)' \
-		-a 'newline=\n' \
-		-b xhtml11 \
-		-f asciidoc.conf \
-		$(ASCIIDOC_EXTRA) \
-		-o $@+ $<
-	@mv $@+ $@
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GitOverHttpServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GitOverHttpServlet.java
index dad9b80..06cc2f0 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GitOverHttpServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/GitOverHttpServlet.java
@@ -256,7 +256,7 @@
         throws ServiceNotAuthorizedException {
       final ProjectControl pc = (ProjectControl) req.getAttribute(ATT_CONTROL);
 
-      if (!(pc.getCurrentUser() instanceof IdentifiedUser)) {
+      if (!(pc.getCurrentUser().isIdentifiedUser())) {
         // Anonymous users are not permitted to push.
         throw new ServiceNotAuthorizedException();
       }
@@ -316,7 +316,7 @@
         return;
       }
 
-      if (!(pc.getCurrentUser() instanceof IdentifiedUser)) {
+      if (!(pc.getCurrentUser().isIdentifiedUser())) {
         chain.doFilter(request, response);
         return;
       }
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RequireIdentifiedUserFilter.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RequireIdentifiedUserFilter.java
index 499c2a5..86d6e23 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RequireIdentifiedUserFilter.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/RequireIdentifiedUserFilter.java
@@ -52,7 +52,7 @@
   public void doFilter(ServletRequest request,
       ServletResponse response, FilterChain chain)
       throws IOException, ServletException {
-    if (user.get() instanceof IdentifiedUser) {
+    if (user.get().isIdentifiedUser()) {
       chain.doFilter(request, response);
     } else {
       HttpServletResponse res = (HttpServletResponse) response;
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
index 3281190..0769865 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/gitweb/GitWebServlet.java
@@ -518,7 +518,7 @@
     }
 
     String remoteUser = null;
-    if (project.getCurrentUser() instanceof IdentifiedUser) {
+    if (project.getCurrentUser().isIdentifiedUser()) {
       final IdentifiedUser u = (IdentifiedUser) project.getCurrentUser();
       final String user = u.getUserName();
       env.set("GERRIT_USER_NAME", user);
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java
index b1fd412..97b3696 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/raw/HostPageServlet.java
@@ -175,7 +175,7 @@
     final Page.Content page = select(req);
     final StringWriter w = new StringWriter();
     final CurrentUser user = currentUser.get();
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       w.write(HPD_ID + ".account=");
       json(((IdentifiedUser) user).getAccount(), w);
       w.write(";");
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/BaseServiceImplementation.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/BaseServiceImplementation.java
index 3277992..940e2e6 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/BaseServiceImplementation.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/BaseServiceImplementation.java
@@ -42,7 +42,7 @@
 
   protected Account.Id getAccountId() {
     CurrentUser u = currentUser.get();
-    if (u instanceof IdentifiedUser) {
+    if (u.isIdentifiedUser()) {
       return ((IdentifiedUser) u).getAccountId();
     }
     return null;
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java
index 972345b..36c9ff1 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/ChangeDetailFactory.java
@@ -189,7 +189,7 @@
     Set<PatchSet.Id> patchesWithDraftComments = new HashSet<PatchSet.Id>();
     final CurrentUser user = control.getCurrentUser();
     final Account.Id me =
-        user instanceof IdentifiedUser ? ((IdentifiedUser) user).getAccountId()
+        user.isIdentifiedUser() ? ((IdentifiedUser) user).getAccountId()
             : null;
     for (PatchSet ps : source) {
       final PatchSet.Id psId = ps.getId();
@@ -306,7 +306,7 @@
 
     final CurrentUser currentUser = control.getCurrentUser();
     Account.Id currentUserId = null;
-    if (currentUser instanceof IdentifiedUser) {
+    if (currentUser.isIdentifiedUser()) {
         currentUserId = ((IdentifiedUser) currentUser).getAccountId();
     }
 
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetDetailFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetDetailFactory.java
index 35af351..74c243e 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetDetailFactory.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/PatchSetDetailFactory.java
@@ -156,7 +156,7 @@
     detail.setPatches(patches);
 
     final CurrentUser user = control.getCurrentUser();
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       // If we are signed in, compute the number of draft comments by the
       // current user on each of these patch files. This way they can more
       // quickly locate where they have pending drafts, and review them.
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java
index 6f439d2..9c81cfa 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/HttpLog.java
@@ -111,7 +111,7 @@
       uri = uri + "?" + qs;
     }
 
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       IdentifiedUser who = (IdentifiedUser) user;
       if (who.getUserName() != null && !who.getUserName().isEmpty()) {
         event.setProperty(P_USER, who.getUserName());
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java
index 8d320d4..7730fa5 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/ProjectQoSFilter.java
@@ -227,7 +227,7 @@
       String userName = "";
 
       CurrentUser who = userProvider.get();
-      if (who instanceof IdentifiedUser) {
+      if (who.isIdentifiedUser()) {
         String name = ((IdentifiedUser) who).getUserName();
         if (name != null && !name.isEmpty()) {
           userName = " (" + name + ")";
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/CurrentUser.java b/gerrit-server/src/main/java/com/google/gerrit/server/CurrentUser.java
index ae8c6bf..4f2c6b9 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/CurrentUser.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/CurrentUser.java
@@ -95,4 +95,9 @@
     }
     return capabilities;
   }
+
+  /** Check if user is the IdentifiedUser */
+  public boolean isIdentifiedUser() {
+    return false;
+  }
 }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/IdentifiedUser.java b/gerrit-server/src/main/java/com/google/gerrit/server/IdentifiedUser.java
index 8e61c9a..e4209f0 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/IdentifiedUser.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/IdentifiedUser.java
@@ -412,4 +412,10 @@
   public String toString() {
     return "IdentifiedUser[account " + getAccountId() + "]";
   }
+
+  /** Check if user is the IdentifiedUser */
+  @Override
+  public boolean isIdentifiedUser() {
+    return true;
+  }
 }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountControl.java
index f148b31..1440eac 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountControl.java
@@ -96,7 +96,7 @@
    */
   public boolean canSee(final Account.Id otherUser) {
     // Special case: I can always see myself.
-    if (currentUser instanceof IdentifiedUser
+    if (currentUser.isIdentifiedUser()
         && ((IdentifiedUser) currentUser).getAccountId().equals(otherUser)) {
       return true;
     }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountsCollection.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountsCollection.java
index c050375..a6443ac 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountsCollection.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/AccountsCollection.java
@@ -96,7 +96,7 @@
     CurrentUser user = self.get();
 
     if (id.equals("self")) {
-      if (user instanceof IdentifiedUser) {
+      if (user.isIdentifiedUser()) {
         return (IdentifiedUser) user;
       } else if (user instanceof AnonymousUser) {
         throw new AuthException("Authentication required");
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java
index 2e01f26..ede2431 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/GroupControl.java
@@ -159,7 +159,7 @@
   }
 
   public boolean canSeeMember(Account.Id id) {
-    if (user instanceof IdentifiedUser
+    if (user.isIdentifiedUser()
         && ((IdentifiedUser) user).getAccountId().equals(id)) {
       return true;
     }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapGroupBackend.java b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapGroupBackend.java
index 97a0309..aedd3e6 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapGroupBackend.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/LdapGroupBackend.java
@@ -126,7 +126,7 @@
 
     String groupDn = uuid.get().substring(LDAP_UUID.length());
     CurrentUser user = userProvider.get();
-    if (!(user instanceof IdentifiedUser)
+    if (!(user.isIdentifiedUser())
         || !membershipsOf((IdentifiedUser) user).contains(uuid)) {
       try {
         if (!existsCache.get(groupDn)) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
index 8be0910..90ff799 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeJson.java
@@ -289,7 +289,7 @@
       }
     }
 
-    if (has(CURRENT_ACTIONS) && userProvider.get() instanceof IdentifiedUser) {
+    if (has(CURRENT_ACTIONS) && userProvider.get().isIdentifiedUser()) {
       out.actions = Maps.newTreeMap();
       for (UiAction.Description d : UiActions.from(
           changes,
@@ -698,7 +698,7 @@
 
   private boolean isChangeReviewed(ChangeData cd) throws OrmException {
     CurrentUser user = userProvider.get();
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       PatchSet currentPatchSet = cd.currentPatchSet(db);
       if (currentPatchSet == null) {
         return false;
@@ -779,7 +779,7 @@
     }
 
     if (out.isCurrent && has(CURRENT_ACTIONS)
-        && userProvider.get() instanceof IdentifiedUser) {
+        && userProvider.get().isIdentifiedUser()) {
       out.actions = Maps.newTreeMap();
       for (UiAction.Description d : UiActions.from(
           revisions,
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java
index 52d725e..87910bf 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeResource.java
@@ -57,7 +57,7 @@
     Hasher h = Hashing.md5().newHasher()
       .putLong(getChange().getLastUpdatedOn().getTime())
       .putInt(getChange().getRowVersion())
-      .putInt(user instanceof IdentifiedUser
+      .putInt(user.isIdentifiedUser()
           ? ((IdentifiedUser) user).getAccountId().get()
           : 0);
 
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Drafts.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Drafts.java
index 8282d7c..4ec9b6c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Drafts.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Drafts.java
@@ -73,7 +73,7 @@
   }
 
   private void checkIdentifiedUser() throws AuthException {
-    if (!(user.get() instanceof IdentifiedUser)) {
+    if (!(user.get().isIdentifiedUser())) {
       throw new AuthException("drafts only available to authenticated users");
     }
   }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java
index 3b86fe7..ec8234f 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Files.java
@@ -146,7 +146,7 @@
     private Object reviewed(RevisionResource resource)
         throws AuthException, OrmException {
       CurrentUser user = self.get();
-      if (!(user instanceof IdentifiedUser)) {
+      if (!(user.isIdentifiedUser())) {
         throw new AuthException("Authentication required");
       }
 
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java b/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java
index 918a530..32d83fe 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/group/GroupsCollection.java
@@ -68,7 +68,7 @@
     final CurrentUser user = self.get();
     if (user instanceof AnonymousUser) {
       throw new AuthException("Authentication required");
-    } else if(!(user instanceof IdentifiedUser)) {
+    } else if(!(user.isIdentifiedUser())) {
       throw new ResourceNotFoundException();
     }
 
@@ -81,7 +81,7 @@
     final CurrentUser user = self.get();
     if (user instanceof AnonymousUser) {
       throw new AuthException("Authentication required");
-    } else if(!(user instanceof IdentifiedUser)) {
+    } else if(!(user.isIdentifiedUser())) {
       throw new ResourceNotFoundException(id);
     }
 
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
index 267ae49..e1294e0 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchListLoader.java
@@ -243,6 +243,11 @@
 
   public static RevTree automerge(Repository repo, RevWalk rw, RevCommit b)
       throws IOException {
+    return automerge(repo, rw, b, true);
+  }
+
+  public static RevTree automerge(Repository repo, RevWalk rw, RevCommit b,
+      boolean save) throws IOException {
     String hash = b.name();
     String refName = GitRepositoryManager.REFS_CACHE_AUTOMERGE
         + hash.substring(0, 2)
@@ -373,10 +378,12 @@
       ins.release();
     }
 
-    RefUpdate update = repo.updateRef(refName);
-    update.setNewObjectId(treeId);
-    update.disableRefLog();
-    update.forceUpdate();
+    if (save) {
+      RefUpdate update = repo.updateRef(refName);
+      update.setNewObjectId(treeId);
+      update.disableRefLog();
+      update.forceUpdate();
+    }
     return rw.parseTree(treeId);
   }
 
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptFactory.java b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptFactory.java
index fc1b808..9471d3b 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptFactory.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/patch/PatchScriptFactory.java
@@ -274,7 +274,7 @@
     }
 
     final CurrentUser user = control.getCurrentUser();
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       final Account.Id me = ((IdentifiedUser) user).getAccountId();
       switch (changeType) {
         case ADDED:
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java
index d09dcb7..667a510 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ChangeControl.java
@@ -264,7 +264,7 @@
 
   /** Is this user the owner of the change? */
   public boolean isOwner() {
-    if (getCurrentUser() instanceof IdentifiedUser) {
+    if (getCurrentUser().isIdentifiedUser()) {
       final IdentifiedUser i = (IdentifiedUser) getCurrentUser();
       return i.getAccountId().equals(change.getOwner());
     }
@@ -279,7 +279,7 @@
   /** Is this user a reviewer for the change? */
   public boolean isReviewer(ReviewDb db, @Nullable ChangeData cd)
       throws OrmException {
-    if (getCurrentUser() instanceof IdentifiedUser) {
+    if (getCurrentUser().isIdentifiedUser()) {
       final IdentifiedUser user = (IdentifiedUser) getCurrentUser();
       Iterable<PatchSetApproval> results;
       if (cd != null) {
@@ -305,7 +305,7 @@
     if (getChange().getStatus().isOpen()) {
       // A user can always remove themselves.
       //
-      if (getCurrentUser() instanceof IdentifiedUser) {
+      if (getCurrentUser().isIdentifiedUser()) {
         final IdentifiedUser i = (IdentifiedUser) getCurrentUser();
         if (i.getAccountId().equals(reviewer)) {
           return true; // can remove self
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java
index b82c1b7..479f377 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ProjectControl.java
@@ -296,7 +296,7 @@
   }
 
   private Capable verifyActiveContributorAgreement() {
-    if (! (user instanceof IdentifiedUser)) {
+    if (! (user.isIdentifiedUser())) {
       return new Capable("Must be logged in to verify Contributor Agreement");
     }
     final IdentifiedUser iUser = (IdentifiedUser) user;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java
index 1a9df90..0898789 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/RefControl.java
@@ -262,7 +262,7 @@
       final PersonIdent tagger = tag.getTaggerIdent();
       if (tagger != null) {
         boolean valid;
-        if (getCurrentUser() instanceof IdentifiedUser) {
+        if (getCurrentUser().isIdentifiedUser()) {
           final IdentifiedUser user = (IdentifiedUser) getCurrentUser();
           final String addr = tagger.getEmailAddress();
           valid = user.getEmailAddresses().contains(addr);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
index 19dc491..7684484 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java
@@ -437,7 +437,7 @@
     Set<Account.Id> m = parseAccount(who);
     List<IsWatchedByPredicate> p = Lists.newArrayListWithCapacity(m.size());
     for (Account.Id id : m) {
-      if (currentUser instanceof IdentifiedUser
+      if (currentUser.isIdentifiedUser()
           && id.equals(((IdentifiedUser) currentUser).getAccountId())) {
         p.add(new IsWatchedByPredicate(args, currentUser, false));
       } else {
@@ -656,7 +656,7 @@
   }
 
   private Account.Id self() {
-    if (currentUser instanceof IdentifiedUser) {
+    if (currentUser.isIdentifiedUser()) {
       return ((IdentifiedUser) currentUser).getAccountId();
     }
     throw new IllegalArgumentException();
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java
index 7f1c6f0..b0b75d0 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsStarredByPredicate.java
@@ -31,7 +31,7 @@
 class IsStarredByPredicate extends OrPredicate<ChangeData> implements
     ChangeDataSource {
   private static String describe(CurrentUser user) {
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       return ((IdentifiedUser) user).getAccountId().toString();
     }
     return user.toString();
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsVisibleToPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsVisibleToPredicate.java
index b73465a..8992318 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsVisibleToPredicate.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsVisibleToPredicate.java
@@ -26,7 +26,7 @@
 
 class IsVisibleToPredicate extends OperatorPredicate<ChangeData> {
   private static String describe(CurrentUser user) {
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       return ((IdentifiedUser) user).getAccountId().toString();
     }
     if (user instanceof SingleGroupUser) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsWatchedByPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsWatchedByPredicate.java
index d96b6db..a6a344d 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsWatchedByPredicate.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsWatchedByPredicate.java
@@ -28,7 +28,7 @@
 
 class IsWatchedByPredicate extends AndPredicate<ChangeData> {
   private static String describe(CurrentUser user) {
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       return ((IdentifiedUser) user).getAccountId().toString();
     }
     return user.toString();
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/util/ThreadLocalRequestContext.java b/gerrit-server/src/main/java/com/google/gerrit/server/util/ThreadLocalRequestContext.java
index bd43e9d..2aa07b48 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/util/ThreadLocalRequestContext.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/util/ThreadLocalRequestContext.java
@@ -59,7 +59,7 @@
 
       @Provides
       IdentifiedUser provideCurrentUser(CurrentUser user) {
-        if (user instanceof IdentifiedUser) {
+        if (user.isIdentifiedUser()) {
           return (IdentifiedUser) user;
         }
         throw new ProvisionException(NotSignedInException.MESSAGE,
diff --git a/gerrit-server/src/main/java/gerrit/PRED_current_user_1.java b/gerrit-server/src/main/java/gerrit/PRED_current_user_1.java
index 11911bd..dd2a008 100644
--- a/gerrit-server/src/main/java/gerrit/PRED_current_user_1.java
+++ b/gerrit-server/src/main/java/gerrit/PRED_current_user_1.java
@@ -51,7 +51,7 @@
     CurrentUser curUser = cControl.getCurrentUser();
     Term resultTerm;
 
-    if (curUser instanceof IdentifiedUser) {
+    if (curUser.isIdentifiedUser()) {
       Account.Id id = ((IdentifiedUser)curUser).getAccountId();
       resultTerm = new IntegerTerm(id.get());
     } else if (curUser instanceof AnonymousUser) {
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/BaseCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/BaseCommand.java
index 0cf48d8..21937e4 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/BaseCommand.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/BaseCommand.java
@@ -339,7 +339,7 @@
     } else {
       final StringBuilder m = new StringBuilder();
       m.append("Internal server error");
-      if (userProvider.get() instanceof IdentifiedUser) {
+      if (userProvider.get().isIdentifiedUser()) {
         final IdentifiedUser u = (IdentifiedUser) userProvider.get();
         m.append(" (user ");
         m.append(u.getAccount().getUserName());
@@ -403,7 +403,7 @@
 
       StringBuilder m = new StringBuilder();
       m.append(context.getCommandLine());
-      if (userProvider.get() instanceof IdentifiedUser) {
+      if (userProvider.get().isIdentifiedUser()) {
         IdentifiedUser u = (IdentifiedUser) userProvider.get();
         m.append(" (" + u.getAccount().getUserName() + ")");
       }
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java
index 336490c..5120bfd 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshLog.java
@@ -233,7 +233,7 @@
 
     String userName = "-", accountId = "-";
 
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       IdentifiedUser u = (IdentifiedUser) user;
       userName = u.getAccount().getUserName();
       accountId = "a/" + u.getAccountId().toString();
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java
index 0ae40a5..70a8592 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshScope.java
@@ -81,7 +81,7 @@
     @Override
     public CurrentUser getCurrentUser() {
       final CurrentUser user = session.getCurrentUser();
-      if (user instanceof IdentifiedUser) {
+      if (user.isIdentifiedUser()) {
         IdentifiedUser identifiedUser = userFactory.create(((IdentifiedUser) user).getAccountId());
         identifiedUser.setAccessPath(user.getAccessPath());
         return identifiedUser;
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java
index 7b308c1..09ce920 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ShowConnections.java
@@ -146,7 +146,7 @@
     }
 
     final CurrentUser user = sd.getCurrentUser();
-    if (user instanceof IdentifiedUser) {
+    if (user.isIdentifiedUser()) {
       IdentifiedUser u = (IdentifiedUser) user;
 
       if (!numeric) {