From 3e66a21805e19311c2aca204f38c861b33d9cded Mon Sep 17 00:00:00 2001 From: Michael Hoennig Date: Fri, 12 Apr 2019 17:34:28 +0200 Subject: [PATCH] added comment regarding potential race condition --- .../org/hostsharing/hsadminng/service/MembershipValidator.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/org/hostsharing/hsadminng/service/MembershipValidator.java b/src/main/java/org/hostsharing/hsadminng/service/MembershipValidator.java index f700c67c..67b489d6 100644 --- a/src/main/java/org/hostsharing/hsadminng/service/MembershipValidator.java +++ b/src/main/java/org/hostsharing/hsadminng/service/MembershipValidator.java @@ -18,6 +18,8 @@ public class MembershipValidator { throw new BadRequestAlertException("Invalid untilDate", Membership.ENTITY_NAME, "untilDateMustBeAfterSinceDate"); } + // It's known that this validation can cause a race condition if two memberships of the same customer are saved at + // same time (overlapping transactions). This is ignored in this case because it's too unlikely to be worth the effort. if (membershipRepository.hasUncancelledMembershipForCustomer(membershipDTO.getCustomerId())) { throw new BadRequestAlertException("Another uncancelled membership exists", Membership.ENTITY_NAME, "anotherUncancelledMembershipExists"); }