Merge "Allow loading Project Access when there is no refs/meta/config" into stable
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectAccess.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectAccess.java
index 09cfbb4..18d037f 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectAccess.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ChangeProjectAccess.java
@@ -53,7 +53,8 @@
class ChangeProjectAccess extends Handler<ProjectAccess> {
interface Factory {
ChangeProjectAccess create(@Assisted Project.NameKey projectName,
- @Assisted ObjectId base, @Assisted List<AccessSection> sectionList,
+ @Nullable @Assisted ObjectId base,
+ @Assisted List<AccessSection> sectionList,
@Nullable @Assisted String message);
}
@@ -75,7 +76,8 @@
final MetaDataUpdate.User metaDataUpdateFactory,
@Assisted final Project.NameKey projectName,
- @Assisted final ObjectId base, @Assisted List<AccessSection> sectionList,
+ @Nullable @Assisted final ObjectId base,
+ @Assisted List<AccessSection> sectionList,
@Nullable @Assisted String message) {
this.projectAccessFactory = projectAccessFactory;
this.projectControlFactory = projectControlFactory;
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAccessFactory.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAccessFactory.java
index 440366b..76e1f2b 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAccessFactory.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAccessFactory.java
@@ -177,7 +177,10 @@
}
final ProjectAccess detail = new ProjectAccess();
- detail.setRevision(config.getRevision().name());
+
+ if (config.getRevision() != null) {
+ detail.setRevision(config.getRevision().name());
+ }
if (projectName.equals(allProjectsName)) {
if (pc.isOwner()) {
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAdminServiceImpl.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAdminServiceImpl.java
index 0f9ffff..47b3e3e 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAdminServiceImpl.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ProjectAdminServiceImpl.java
@@ -85,7 +85,12 @@
public void changeProjectAccess(Project.NameKey projectName,
String baseRevision, String msg, List<AccessSection> sections,
AsyncCallback<ProjectAccess> cb) {
- ObjectId base = ObjectId.fromString(baseRevision);
+ ObjectId base;
+ if (baseRevision != null && !baseRevision.isEmpty()) {
+ base = ObjectId.fromString(baseRevision);
+ } else {
+ base = null;
+ }
changeProjectAccessFactory.create(projectName, base, sections, msg).to(cb);
}