Merge "Allow empty string as max object size limit"
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java
index 2f3e66a..dcda7f7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/ChangeInserter.java
@@ -63,6 +63,7 @@
 
   private ChangeMessage changeMessage;
   private Set<Account.Id> reviewers;
+  private boolean runHooks;
 
   @Inject
   ChangeInserter(Provider<ReviewDb> dbProvider,
@@ -84,8 +85,8 @@
     this.refControl = refControl;
     this.change = change;
     this.commit = commit;
-
     this.reviewers = Collections.emptySet();
+    this.runHooks = true;
 
     patchSet =
         new PatchSet(new PatchSet.Id(change.getId(), INITIAL_PATCH_SET_ID));
@@ -107,9 +108,14 @@
     return this;
   }
 
-  public ChangeInserter setDraft() {
-    change.setStatus(Change.Status.DRAFT);
-    patchSet.setDraft(true);
+  public ChangeInserter setDraft(boolean draft) {
+    change.setStatus(draft ? Change.Status.DRAFT : Change.Status.NEW);
+    patchSet.setDraft(draft);
+    return this;
+  }
+
+  public ChangeInserter setRunHooks(boolean runHooks) {
+    this.runHooks = runHooks;
     return this;
   }
 
@@ -143,6 +149,8 @@
     indexer.index(change);
     gitRefUpdated.fire(change.getProject(), patchSet.getRefName(),
         ObjectId.zeroId(), commit);
-    hooks.doPatchsetCreatedHook(change, patchSet, db);
+    if (runHooks) {
+      hooks.doPatchsetCreatedHook(change, patchSet, db);
+    }
   }
 }
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
index 2c8663e..aed72ee 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
@@ -1479,10 +1479,8 @@
           currentUser.getAccountId(),
           magicBranch.dest);
       change.setTopic(magicBranch.topic);
-      ins = changeInserterFactory.create(ctl, change, c);
-      if (magicBranch.isDraft()) {
-        ins.setDraft();
-      }
+      ins = changeInserterFactory.create(ctl, change, c)
+          .setDraft(magicBranch.isDraft());
       cmd = new ReceiveCommand(ObjectId.zeroId(), c,
           ins.getPatchSet().getRefName());
     }
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java
index a849e68..0d5207a 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/git/ProjectConfigTest.java
@@ -159,9 +159,8 @@
         + "[contributor-agreement \"Individual\"]\n" //
         + "  description = A new description\n" //
         + "  accepted = group Staff\n" //
-        + "  agreementUrl = http://www.example.com/agree\n" //
-        + "[project]\n"//
-        + "\tstate = active\n", text(rev, "project.config"));
+        + "  agreementUrl = http://www.example.com/agree\n",
+        text(rev, "project.config"));
   }
 
   @Test
@@ -188,9 +187,7 @@
         + "  submit = group People Who Can Submit\n" //
         + "\tsubmit = group Staff\n" //
         + "  upload = group Developers\n" //
-        + "  read = group Developers\n"//
-        + "[project]\n"//
-        + "\tstate = active\n", text(rev, "project.config"));
+        + "  read = group Developers\n", text(rev, "project.config"));
   }
 
   private ProjectConfig read(RevCommit rev) throws IOException,