diff options
author | Shawn Pearce <sop@google.com> | 2013-11-18 08:41:02 -0800 |
---|---|---|
committer | Shawn Pearce <sop@google.com> | 2013-11-18 08:41:02 -0800 |
commit | b3faa893a53440ac7bcce120b650d575023ce2ae (patch) | |
tree | dd240eae65f8ac7e979117a0f0f6c633914f172e | |
parent | 6a71917078c93cfc184498e34f958964e0efdec2 (diff) | |
parent | 5174e351474960a616a17a9625d68b1fc0f291a4 (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
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()); |