BlueGrey
calm
Elegant
Català-Valencià – Catalan
中文 – Chinese (Simplified)
中文 – Chinese (Traditional)
Česky – Czech
Dansk – Danish
Nederlands – Dutch
English – English
Suomi – Finnish
Français – French
Deutsch – German
עברית – Hebrew
हिंदी – Hindi
Magyar – Hungarian
Bahasa Indonesia – Indonesian
Italiano – Italian
日本語 – Japanese
한국어 – Korean
Македонски – Macedonian
मराठी – Marathi
Norsk – Norwegian
Polski – Polish
Português – Portuguese
Português – Portuguese (Brazil)
Русский – Russian
Slovenčina – Slovak
Slovenščina – Slovenian
Español – Spanish
Svenska – Swedish
Türkçe – Turkish
Українська – Ukrainian
Oëzbekcha – Uzbek
Subversion Repositories
SmartDukaan
(root)
/
/
trunk
/
profitmandi-fofo
/
src
/
main
/
java
/
com
/
spice
/
profitmandi
/
web
/
controller
/
hdfc/
– Rev 36411
Rev
Show changed files
|
Directory listing
|
RSS feed
Filtering Options
From rev
To rev
Max revs
Search history for
Show All
Rev
Age
Author
Path
Log message
Diff
36411
16 d 3 h
amit
/trunk/
Fix lock contention: REQUIRES_NEW for wallet lock in createLoanForBilling, handle HDFC payment deadlock as duplicate
36401
17 d 2 h
amit
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/
Replace mailSender (SendGrid) with gmailRelaySender - SendGrid API key expired/revoked
36371
20 d 4 h
amit
/trunk/
HDFC webhook: INSERT IGNORE on hdfc_payment to fix concurrent-duplicate 500 storm
Replaces persist() with a native INSERT IGNORE so concurrent same-UTR webhook
retries serialize on the unique-index check, and the loser gets a 0-row no-op
(warning, not exception). Outer @Transactional session stays clean, Spring
commits normally, HDFC sees 200 on both the winner (Success) and the loser
(Duplicate) - retry amplification ends.
Flow:
persist(hdfcPayment) -> insertIgnore(hdfcPayment) + selectByUtrNo(utr)
- inserted == 1: proceed with wallet / sidbi side-effects using fetched id
- inserted == 0: respond Duplicate, skip side-effects (owned by winning tx)
- defensive: log warn if insertIgnore returned 0 but selectByUtrNo finds
no row (could mean IGNORE swallowed a non-duplicate issue like truncation)
Also drops HdfcProcessingHelper (r36366) which used REQUIRES_NEW for the same
goal; that approach required a second JDBC connection and is no longer needed
with SQL-level idempotency.
Does NOT touch the wallet-side lost-update hole (user_wallet read-modify-write
without FOR UPDATE). That is a separate commit.
36367
20 d 23 h
amit
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
HDFC webhook: delegate writes to HdfcProcessingHelper; always respond OK
Fixes the concurrent-duplicate deadlock observed on hadb1 2026-04-23 12:54:11
(two HDFC retries inserting same utr='308490624083' → InnoDB deadlock →
LockAcquisitionException → 500 → HDFC retries again → amplification).
- addPayment: the HDFC row build + persist + wallet/sidbi is now a single call
to hdfcProcessingHelper.processPayment() which runs in REQUIRES_NEW. The
helper catches DataIntegrityViolationException and logs silently; our tx
is unaffected.
- The else branch (pre-select found an existing row) now returns the same
code=100 status=Success as the main path instead of code=200 Duplicate.
Per product direction: HDFC should see 'OK' regardless of whether the row
already existed from a prior webhook, manual entry, or reconciliation —
retries stop cleanly, no 'Duplicate' surface distinction.
Did NOT add @Transactional(readOnly=true) on the outer method despite its
read-heavy shape — checkManualPayments() at line 277 has a write side-effect
(rejecting pending manual wallet requests for the same utr) which would be
silently dropped in a read-only session. Kept class-level writable tx for
the outer; only HDFC writes moved to REQUIRES_NEW helper.
34965
251 d 22 h
amit
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Update
34944
253 d 3 h
amit
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Update
34435
390 d 1 h
tejus.lohani
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/
upi payment capture details modification and remove admit check in wallet statement download and account statement download so that partner download his account and wallet statement
33369
731 d 0 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Fixed Order quantity avai
33368
731 d 0 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Fixed logic to handle virtual account issue
33354
734 d 3 h
amit.gupta
/trunk/
Enhanced Sidbi Sanctions
33175
772 d 20 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/
Fixed Logic to avoid duplicate payments based on utr number
33110
788 d 23 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
patch for
33045
801 d 3 h
amit.gupta
/trunk/
Added sidbi and improvements in credit note
32408
980 d 7 h
amit.gupta
/trunk/
Fixed front end related issues with add/remove row
32196
1038 d 3 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Fixed additional scheme logic
32025
1091 d 22 h
amit.gupta
/trunk/
Added logic to validate utr
31845
1119 d 2 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Fixed logic
31844
1119 d 4 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Fixed logic
31843
1119 d 4 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Fixed logic
31842
1119 d 17 h
amit.gupta
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/hdfc/
Fixed logic
←Prev
1
2
Next→
Show All