summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn Pearce <sop@google.com>2013-11-18 08:41:02 -0800
committerShawn Pearce <sop@google.com>2013-11-18 08:41:02 -0800
commitb3faa893a53440ac7bcce120b650d575023ce2ae (patch)
treedd240eae65f8ac7e979117a0f0f6c633914f172e
parent6a71917078c93cfc184498e34f958964e0efdec2 (diff)
parent5174e351474960a616a17a9625d68b1fc0f291a4 (diff)
Merge branch 'stable-2.6' into stable-2.7
* stable-2.6: Catch missing LDAP accounts in group membership Update patch status before skipping duplicate emails Conflicts: gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java Change-Id: If7173d50f09fa799e1cdd02e68b88aab00f1a1d9
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java16
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java4
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java20
3 files changed, 25 insertions, 15 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java
index 7d0ad24325..63ef2e63f3 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/auth/ldap/Helper.java
@@ -198,7 +198,13 @@ import javax.security.auth.login.LoginException;
final HashMap<String, String> params = new HashMap<String, String>();
if (account == null) {
- account = findAccount(schema, ctx, username);
+ try {
+ account = findAccount(schema, ctx, username);
+ } catch (AccountException e) {
+ LdapRealm.log.warn("Account " + username +
+ " not found, assuming empty group membership");
+ return Collections.emptySet();
+ }
}
for (String name : schema.groupMemberQueryList.get(0).getParameters()) {
params.put(name, account.get(name));
@@ -215,7 +221,13 @@ import javax.security.auth.login.LoginException;
if (schema.accountMemberField != null) {
if (account == null) {
- account = findAccount(schema, ctx, username);
+ try {
+ account = findAccount(schema, ctx, username);
+ } catch (AccountException e) {
+ LdapRealm.log.warn("Account " + username +
+ " not found, assuming empty group membership");
+ return Collections.emptySet();
+ }
}
final Attribute groupAtt = account.getAll(schema.accountMemberField);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java
index 2b51b0a802..78202fc9f7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Submit.java
@@ -143,7 +143,6 @@ public class Submit implements RestModifyView<RevisionResource, Input> {
*/
public ChangeMessage getConflictMessage(RevisionResource rsrc)
throws OrmException {
- final Timestamp before = rsrc.getChange().getLastUpdatedOn();
ChangeMessage msg = Iterables.getFirst(Iterables.filter(
Lists.reverse(dbProvider.get().changeMessages()
.byChange(rsrc.getChange().getId())
@@ -151,8 +150,7 @@ public class Submit implements RestModifyView<RevisionResource, Input> {
new Predicate<ChangeMessage>() {
@Override
public boolean apply(ChangeMessage input) {
- return input.getAuthor() == null
- && input.getWrittenOn().getTime() >= before.getTime();
+ return input.getAuthor() == null;
}
}), null);
return msg;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
index 3a9eaa39b2..3afbdd66f4 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
@@ -1047,16 +1047,6 @@ public class MergeOp {
private void sendMergeFail(final Change c, final ChangeMessage msg,
final boolean makeNew) {
- if (isDuplicate(msg)) {
- return;
- }
-
- try {
- db.changeMessages().insert(Collections.singleton(msg));
- } catch (OrmException err) {
- log.warn("Cannot record merge failure message", err);
- }
-
if (makeNew) {
try {
db.changes().atomicUpdate(c.getId(), new AtomicUpdate<Change>() {
@@ -1081,6 +1071,16 @@ public class MergeOp {
}
}
+ if (isDuplicate(msg)) {
+ return;
+ }
+
+ try {
+ db.changeMessages().insert(Collections.singleton(msg));
+ } catch (OrmException err) {
+ log.warn("Cannot record merge failure message", err);
+ }
+
PatchSetApproval submitter = null;
try {
submitter = getSubmitter(db, c.currentPatchSetId());