Merge "Documentation: Various corrections"
diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewResult.java b/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewResult.java
index 28cf49b..c0bf818 100644
--- a/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewResult.java
+++ b/gerrit-common/src/main/java/com/google/gerrit/common/data/ReviewResult.java
@@ -63,6 +63,9 @@
/** Review operation invalid because change is closed. */
CHANGE_IS_CLOSED,
+ /** Review operation invalid because change is not abandoned. */
+ CHANGE_NOT_ABANDONED,
+
/** Not permitted to publish this draft patch set */
PUBLISH_NOT_PERMITTED,
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyWatchedProjectsScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyWatchedProjectsScreen.java
index 1334d87..8d4a767 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyWatchedProjectsScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/account/MyWatchedProjectsScreen.java
@@ -28,11 +28,8 @@
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;
-import com.google.gwt.event.logical.shared.ResizeEvent;
-import com.google.gwt.event.logical.shared.ResizeHandler;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
-import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlowPanel;
@@ -49,8 +46,7 @@
import java.util.List;
-public class MyWatchedProjectsScreen extends SettingsScreen implements
- ResizeHandler {
+public class MyWatchedProjectsScreen extends SettingsScreen {
private Button addNew;
private HintTextBox nameBox;
private SuggestBox nameTxt;
@@ -61,16 +57,10 @@
private Button close;
private ProjectsTable projectsTab;
private Button delSel;
-
private PopupPanel.PositionCallback popupPosition;
- private HandlerRegistration regWindowResize;
-
- private int preferredPopupWidth = -1;
-
private boolean submitOnSelection;
private boolean firstPopupLoad = true;
private boolean popingUp;
-
private ScrollPanel sp;
@Override
@@ -78,9 +68,7 @@
super.onInitUI();
createWidgets();
-
/* top table */
-
final Grid grid = new Grid(2, 2);
grid.setStyleName(Gerrit.RESOURCES.css().infoBlock());
grid.setText(0, 0, Util.C.watchedProjectName());
@@ -105,33 +93,27 @@
/* bottom table */
-
add(watchesTab);
add(delSel);
/* popup */
-
final FlowPanel pfp = new FlowPanel();
sp = new ScrollPanel(projectsTab);
+ sp.setSize("100%", "100%");
pfp.add(sp);
pfp.add(close);
popup.setWidget(pfp);
-
+ popup.setHeight("100%");
popupPosition = new PopupPanel.PositionCallback() {
+
public void setPosition(int offsetWidth, int offsetHeight) {
- if (preferredPopupWidth == -1) {
- preferredPopupWidth = offsetWidth;
- }
-
int top = grid.getAbsoluteTop() - 50; // under page header
-
// Try to place it to the right of everything else, but not
// right justified
- int left = 5 + Math.max(
- grid.getAbsoluteLeft() + grid.getOffsetWidth(),
- watchesTab.getAbsoluteLeft() + watchesTab.getOffsetWidth() );
-
+ int left =
+ 5 + Math.max(grid.getAbsoluteLeft() + grid.getOffsetWidth(),
+ watchesTab.getAbsoluteLeft() + watchesTab.getOffsetWidth());
if (top + offsetHeight > Window.getClientHeight()) {
top = Window.getClientHeight() - offsetHeight;
}
@@ -153,16 +135,6 @@
};
}
- @Override
- public void onResize(final ResizeEvent event) {
- sp.setSize("100%","100%");
-
- // For some reason keeping track of preferredWidth keeps the width better,
- // but using 100% for height works better.
- popup.setHeight("100%");
- popupPosition.setPosition(preferredPopupWidth, popup.getOffsetHeight());
- }
-
protected void createWidgets() {
nameBox = new HintTextBox();
nameTxt = new SuggestBox(new ProjectNameSuggestOracle(), nameBox);
@@ -293,23 +265,13 @@
GlobalKey.addApplication(popup, new HidePopupPanelCommand(0,
KeyCodes.KEY_ESCAPE, popup));
projectsTab.setRegisterKeys(true);
-
projectsTab.finishDisplay();
-
- if (regWindowResize == null) {
- regWindowResize = Window.addResizeHandler(this);
- }
-
popingUp = false;
}
}
protected void closePopup() {
popup.hide();
- if (regWindowResize != null) {
- regWindowResize.removeHandler();
- regWindowResize = null;
- }
}
protected void doAddNew() {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java
index 15c1150..f761270 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeScreen.java
@@ -291,18 +291,28 @@
addComments(detail);
// If any dependency change is still open, or is outdated,
+ // or the change is needed by a change that is new or submitted,
// show our dependency list.
//
boolean depsOpen = false;
int outdated = 0;
- if (!detail.getChange().getStatus().isClosed()
- && detail.getDependsOn() != null) {
- for (final ChangeInfo ci : detail.getDependsOn()) {
- if (! ci.isLatest()) {
- depsOpen = true;
- outdated++;
- } else if (ci.getStatus() != Change.Status.MERGED) {
- depsOpen = true;
+ if (!detail.getChange().getStatus().isClosed()) {
+ if (detail.getDependsOn() != null) {
+ for (final ChangeInfo ci : detail.getDependsOn()) {
+ if (!ci.isLatest()) {
+ depsOpen = true;
+ outdated++;
+ } else if (ci.getStatus() != Change.Status.MERGED) {
+ depsOpen = true;
+ }
+ }
+ }
+ if (detail.getNeededBy() != null) {
+ for (final ChangeInfo ci : detail.getNeededBy()) {
+ if ((ci.getStatus() == Change.Status.NEW) ||
+ (ci.getStatus() == Change.Status.SUBMITTED)) {
+ depsOpen = true;
+ }
}
}
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommitMessageBlock.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommitMessageBlock.java
index 3237b83..2b87a28 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommitMessageBlock.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/CommitMessageBlock.java
@@ -19,6 +19,7 @@
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.PreElement;
+import com.google.gwt.dom.client.Style.Display;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.HTMLPanel;
@@ -50,7 +51,7 @@
// Hide commit body if there is no body
if (commitBody.trim().isEmpty()) {
- commitBodyPre.setAttribute("style", "display: none;");
+ commitBodyPre.getStyle().setDisplay(Display.NONE);
}
// Linkify commit summary
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java
index ffc8960..b1a7fec 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScreen.java
@@ -297,6 +297,9 @@
@Override
protected void onLoad() {
super.onLoad();
+
+ fileList.movePointerTo(patchKey);
+
if (patchSetDetail == null) {
Util.DETAIL_SVC.patchSetDetail(idSideB,
new GerritCallback<PatchSetDetail>() {
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/AbandonChangeHandler.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/AbandonChangeHandler.java
index 1d4d3e2..1713422 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/AbandonChangeHandler.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/AbandonChangeHandler.java
@@ -22,7 +22,6 @@
import com.google.gerrit.server.changedetail.AbandonChange;
import com.google.gerrit.server.mail.EmailException;
import com.google.gerrit.server.patch.PatchSetInfoNotAvailableException;
-import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
@@ -61,9 +60,8 @@
@Override
public ChangeDetail call() throws NoSuchChangeException, OrmException,
- EmailException, NoSuchEntityException, InvalidChangeOperationException,
- PatchSetInfoNotAvailableException, RepositoryNotFoundException,
- IOException {
+ EmailException, NoSuchEntityException, PatchSetInfoNotAvailableException,
+ RepositoryNotFoundException, IOException {
final ReviewResult result =
abandonChangeFactory.create(patchSetId.getParentKey(), message).call();
if (result.getErrors().size() > 0) {
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/RestoreChangeHandler.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/RestoreChangeHandler.java
index 5d7fe32..12d66fd 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/RestoreChangeHandler.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/changedetail/RestoreChangeHandler.java
@@ -22,7 +22,6 @@
import com.google.gerrit.server.changedetail.RestoreChange;
import com.google.gerrit.server.mail.EmailException;
import com.google.gerrit.server.patch.PatchSetInfoNotAvailableException;
-import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
@@ -60,9 +59,8 @@
@Override
public ChangeDetail call() throws NoSuchChangeException, OrmException,
- EmailException, NoSuchEntityException, InvalidChangeOperationException,
- PatchSetInfoNotAvailableException, RepositoryNotFoundException,
- IOException {
+ EmailException, NoSuchEntityException, PatchSetInfoNotAvailableException,
+ RepositoryNotFoundException, IOException {
final ReviewResult result =
restoreChangeFactory.create(patchSetId.getParentKey(), message).call();
if (result.getErrors().size() > 0) {
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/CreateProjectHandler.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/CreateProjectHandler.java
index e0a2f9c..141f332 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/CreateProjectHandler.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/CreateProjectHandler.java
@@ -26,8 +26,6 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
-import org.eclipse.jgit.lib.Constants;
-
import java.util.Collections;
public class CreateProjectHandler extends Handler<VoidResult> {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
index 4b98447..8d31593 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java
@@ -585,12 +585,8 @@
public static <T extends ReplyToChangeSender> void updatedChange(
final ReviewDb db, final IdentifiedUser user, final Change change,
- final ChangeMessage cmsg, ReplyToChangeSender.Factory<T> senderFactory,
- final String err) throws NoSuchChangeException,
- InvalidChangeOperationException, EmailException, OrmException {
- if (change == null) {
- throw new InvalidChangeOperationException(err);
- }
+ final ChangeMessage cmsg, ReplyToChangeSender.Factory<T> senderFactory)
+ throws NoSuchChangeException, EmailException, OrmException {
db.changeMessages().insert(Collections.singleton(cmsg));
new ApprovalsUtil(db, null).syncChangeStatus(change);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/AbandonChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/AbandonChange.java
index 83fa671..bc0ef61 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/AbandonChange.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/AbandonChange.java
@@ -26,7 +26,6 @@
import com.google.gerrit.server.mail.AbandonedSender;
import com.google.gerrit.server.mail.EmailException;
import com.google.gerrit.server.project.ChangeControl;
-import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gwtorm.server.AtomicUpdate;
import com.google.gwtorm.server.OrmException;
@@ -69,8 +68,8 @@
}
@Override
- public ReviewResult call() throws EmailException,
- InvalidChangeOperationException, NoSuchChangeException, OrmException {
+ public ReviewResult call() throws EmailException, NoSuchChangeException,
+ OrmException {
final ReviewResult result = new ReviewResult();
result.setChangeId(changeId);
@@ -102,8 +101,7 @@
new AtomicUpdate<Change>() {
@Override
public Change update(Change change) {
- if (change.getStatus().isOpen()
- && change.currentPatchSetId().equals(patchSetId)) {
+ if (change.getStatus().isOpen()) {
change.setStatus(Change.Status.ABANDONED);
ChangeUtil.updated(change);
return change;
@@ -112,9 +110,15 @@
}
}
});
- ChangeUtil.updatedChange(
- db, currentUser, updatedChange, cmsg, abandonedSenderFactory,
- "Change is no longer open or patchset is not latest");
+
+ if (updatedChange == null) {
+ result.addError(new ReviewResult.Error(
+ ReviewResult.Error.Type.CHANGE_IS_CLOSED));
+ return result;
+ }
+
+ ChangeUtil.updatedChange(db, currentUser, updatedChange, cmsg,
+ abandonedSenderFactory);
hooks.doChangeAbandonedHook(updatedChange, currentUser.getAccount(),
changeComment, db);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/RestoreChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/RestoreChange.java
index 966efce..859807c 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/RestoreChange.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/changedetail/RestoreChange.java
@@ -29,7 +29,6 @@
import com.google.gerrit.server.mail.EmailException;
import com.google.gerrit.server.mail.RestoredSender;
import com.google.gerrit.server.project.ChangeControl;
-import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gwtorm.server.AtomicUpdate;
import com.google.gwtorm.server.OrmException;
@@ -77,9 +76,8 @@
}
@Override
- public ReviewResult call() throws EmailException,
- InvalidChangeOperationException, NoSuchChangeException, OrmException,
- RepositoryNotFoundException, IOException {
+ public ReviewResult call() throws EmailException, NoSuchChangeException,
+ OrmException, RepositoryNotFoundException, IOException {
final ReviewResult result = new ReviewResult();
result.setChangeId(changeId);
@@ -121,8 +119,7 @@
new AtomicUpdate<Change>() {
@Override
public Change update(Change change) {
- if (change.getStatus() == Change.Status.ABANDONED
- && change.currentPatchSetId().equals(patchSetId)) {
+ if (change.getStatus() == Change.Status.ABANDONED) {
change.setStatus(Change.Status.NEW);
ChangeUtil.updated(change);
return change;
@@ -132,10 +129,14 @@
}
});
- ChangeUtil.updatedChange(
- db, currentUser, updatedChange, cmsg, restoredSenderFactory,
- "Change is not abandoned or patchset is not latest");
+ if (updatedChange == null) {
+ result.addError(new ReviewResult.Error(
+ ReviewResult.Error.Type.CHANGE_NOT_ABANDONED));
+ return result;
+ }
+ ChangeUtil.updatedChange(db, currentUser, updatedChange, cmsg,
+ restoredSenderFactory);
hooks.doChangeRestoreHook(updatedChange, currentUser.getAccount(),
changeComment, db);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java
index 507f064..13e9967 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ProjectConfig.java
@@ -34,7 +34,6 @@
import com.google.gerrit.reviewdb.client.Project.SubmitType;
import com.google.gerrit.server.account.GroupBackend;
import com.google.gerrit.server.config.ConfigUtil;
-import com.google.gerrit.common.data.RefConfigSection;
import com.google.gerrit.server.mail.Address;
import org.eclipse.jgit.errors.ConfigInvalidException;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java
index bf0d75d..bc9d9f7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/VisibleRefFilter.java
@@ -104,7 +104,7 @@
TagMatcher tags = tagCache.get(projectName).matcher(
tagCache,
db,
- filterTagsSeperately ? filter(db.getAllRefs()).values() : result.values());
+ filterTagsSeperately ? filter(refs).values() : result.values());
for (Ref tag : deferredTags) {
if (tags.isReachable(tag)) {
result.put(tag.getName(), tag);
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshModule.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshModule.java
index f800783..7f4a1f7 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshModule.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshModule.java
@@ -19,10 +19,6 @@
import com.google.common.collect.Maps;
import com.google.gerrit.lifecycle.LifecycleModule;
-import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.AccountGroup;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.server.CmdLineParserModule;
import com.google.gerrit.server.PeerDaemonUser;
import com.google.gerrit.server.RemotePeer;
@@ -36,7 +32,6 @@
import com.google.gerrit.server.plugins.ModuleGenerator;
import com.google.gerrit.server.plugins.ReloadPluginListener;
import com.google.gerrit.server.plugins.StartPluginListener;
-import com.google.gerrit.server.project.ProjectControl;
import com.google.gerrit.server.ssh.SshInfo;
import com.google.gerrit.server.util.RequestScopePropagator;
import com.google.gerrit.sshd.commands.DefaultCommandModule;
@@ -49,8 +44,6 @@
import org.apache.sshd.server.CommandFactory;
import org.apache.sshd.server.PublickeyAuthenticator;
import org.eclipse.jgit.lib.Config;
-import org.eclipse.jgit.lib.ObjectId;
-
import java.net.SocketAddress;
import java.util.Map;
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProjectCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProjectCommand.java
index 5dff6b0..5f5b1e3 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProjectCommand.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/CreateProjectCommand.java
@@ -27,7 +27,6 @@
import com.google.gerrit.sshd.SshCommand;
import com.google.inject.Inject;
-import org.eclipse.jgit.lib.Constants;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option;
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java
index f38e17e..236d9f1 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/ReviewCommand.java
@@ -248,6 +248,9 @@
case CHANGE_IS_CLOSED:
errMsg += "change is closed";
break;
+ case CHANGE_NOT_ABANDONED:
+ errMsg += "change is not abandoned";
+ break;
case PUBLISH_NOT_PERMITTED:
errMsg += "not permitted to publish change";
break;