Merge "Debug of ALL exception during pull request import"
diff --git a/github-plugin/src/main/java/com/google/gerrit/server/project/ChangeControlDelegate.java b/github-plugin/src/main/java/com/google/gerrit/server/project/ChangeControlDelegate.java
deleted file mode 100644
index 7ccaa69..0000000
--- a/github-plugin/src/main/java/com/google/gerrit/server/project/ChangeControlDelegate.java
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright (C) 2013 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.
-package com.google.gerrit.server.project;
-
-import java.util.List;
-
-import com.google.gerrit.common.data.LabelTypes;
-import com.google.gerrit.common.data.PermissionRange;
-import com.google.gerrit.common.data.SubmitRecord;
-import com.google.gerrit.common.data.SubmitTypeRecord;
-import com.google.gerrit.reviewdb.client.Account.Id;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.client.PatchSet;
-import com.google.gerrit.reviewdb.client.PatchSetApproval;
-import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.reviewdb.server.ReviewDb;
-import com.google.gerrit.server.CurrentUser;
-import com.google.gerrit.server.query.change.ChangeData;
-import com.google.gwtorm.server.OrmException;
-import com.googlecode.prolog_cafe.lang.Term;
-
-public class ChangeControlDelegate extends ChangeControl {
-
- private final ChangeControl realChangeControl;
- private final CurrentUser delegatedUser;
-
- private ChangeControlDelegate(ChangeControl realChangeControl, CurrentUser delegatedUser) {
- // All methods are delegated, super class constructor needs to be invoked anyway with dummy values
- super(null, null, null, null);
- this.realChangeControl = realChangeControl;
- this.delegatedUser = delegatedUser;
- }
-
- public static ChangeControl wrap(ChangeControl realChangeControl, CurrentUser delegatedUser) {
- return new ChangeControlDelegate(realChangeControl, delegatedUser);
- }
-
- public int hashCode() {
- return realChangeControl.hashCode();
- }
-
- public boolean equals(Object obj) {
- return realChangeControl.equals(obj);
- }
-
- public ChangeControl forUser(CurrentUser who) {
- return realChangeControl.forUser(who);
- }
-
- public RefControl getRefControl() {
- return realChangeControl.getRefControl();
- }
-
- public CurrentUser getCurrentUser() {
- return delegatedUser;
- }
-
- public ProjectControl getProjectControl() {
- return realChangeControl.getProjectControl();
- }
-
- public Project getProject() {
- return realChangeControl.getProject();
- }
-
- public Change getChange() {
- return realChangeControl.getChange();
- }
-
- public boolean isVisible(ReviewDb db) throws OrmException {
- return realChangeControl.isVisible(db);
- }
-
- public boolean isRefVisible() {
- return realChangeControl.isRefVisible();
- }
-
- public boolean isPatchVisible(PatchSet ps, ReviewDb db) throws OrmException {
- return realChangeControl.isPatchVisible(ps, db);
- }
-
- public boolean canAbandon() {
- return realChangeControl.canAbandon();
- }
-
- public boolean canPublish(ReviewDb db) throws OrmException {
- return realChangeControl.canPublish(db);
- }
-
- public boolean canDeleteDraft(ReviewDb db) throws OrmException {
- return realChangeControl.canDeleteDraft(db);
- }
-
- public boolean canRebase() {
- return realChangeControl.canRebase();
- }
-
- public boolean canRestore() {
- return realChangeControl.canRestore();
- }
-
- public LabelTypes getLabelTypes() {
- return realChangeControl.getLabelTypes();
- }
-
- public String toString() {
- return realChangeControl.toString();
- }
-
- public List<PermissionRange> getLabelRanges() {
- return realChangeControl.getLabelRanges();
- }
-
- public PermissionRange getRange(String permission) {
- return realChangeControl.getRange(permission);
- }
-
- public boolean canAddPatchSet() {
- return realChangeControl.canAddPatchSet();
- }
-
- public boolean isOwner() {
- return realChangeControl.isOwner();
- }
-
- public boolean isReviewer(ReviewDb db) throws OrmException {
- return realChangeControl.isReviewer(db);
- }
-
- public boolean isReviewer(ReviewDb db, ChangeData cd) throws OrmException {
- return realChangeControl.isReviewer(db, cd);
- }
-
- public boolean canRemoveReviewer(PatchSetApproval approval) {
- return realChangeControl.canRemoveReviewer(approval);
- }
-
- public boolean canRemoveReviewer(Id reviewer, int value) {
- return realChangeControl.canRemoveReviewer(reviewer, value);
- }
-
- public boolean canEditTopicName() {
- return realChangeControl.canEditTopicName();
- }
-
- public List<SubmitRecord> getSubmitRecords(ReviewDb db, PatchSet patchSet) {
- return realChangeControl.getSubmitRecords(db, patchSet);
- }
-
- public boolean canSubmit() {
- return realChangeControl.canSubmit();
- }
-
- public List<SubmitRecord> canSubmit(ReviewDb db, PatchSet patchSet) {
- return realChangeControl.canSubmit(db, patchSet);
- }
-
- public List<SubmitRecord> canSubmit(ReviewDb db, PatchSet patchSet,
- ChangeData cd, boolean fastEvalLabels, boolean allowClosed,
- boolean allowDraft) {
- return realChangeControl.canSubmit(db, patchSet, cd, fastEvalLabels,
- allowClosed, allowDraft);
- }
-
- public List<SubmitRecord> resultsToSubmitRecord(Term submitRule,
- List<Term> results) {
- return realChangeControl.resultsToSubmitRecord(submitRule, results);
- }
-
- public SubmitTypeRecord getSubmitTypeRecord(ReviewDb db, PatchSet patchSet) {
- return realChangeControl.getSubmitTypeRecord(db, patchSet);
- }
-
- public SubmitTypeRecord getSubmitTypeRecord(ReviewDb db, PatchSet patchSet,
- ChangeData cd) {
- return realChangeControl.getSubmitTypeRecord(db, patchSet, cd);
- }
-}
diff --git a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java
index e04c3d6..5d3b929 100644
--- a/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java
+++ b/github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/git/PullRequestCreateChange.java
@@ -53,7 +53,6 @@
import com.google.gerrit.server.git.validators.CommitValidationException;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.project.ChangeControl;
-import com.google.gerrit.server.project.ChangeControlDelegate;
import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gerrit.server.project.NoSuchProjectException;
@@ -164,7 +163,7 @@
ChangeControl changeControl =
projectControlFactory.controlFor(project.getNameKey()).controlFor(
- destChange);
+ destChange).forUser(userFactory.create(pullRequestOwner));
return insertPatchSet(git, revWalk, destChange, pullRequestCommit,
changeControl, pullRequestOwner, pullRequestMesage, doValidation);
@@ -194,8 +193,7 @@
boolean doValidation) throws InvalidChangeOperationException,
IOException, OrmException, NoSuchChangeException {
PatchSetInserter patchSetInserter =
- patchSetInserterFactory.create(git, revWalk, ChangeControlDelegate.wrap(changeControl,
- userFactory.create(pullRequestOwnerId)), cherryPickCommit);
+ patchSetInserterFactory.create(git, revWalk, changeControl, cherryPickCommit);
// This apparently useless method call is made for triggering
// the creation of patchSet inside PatchSetInserter and thus avoiding a NPE
patchSetInserter.getPatchSetId();