<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SmartDukaan &#x2013; /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/TransactionRelatedTasks.java</title><description>WebSVN RSS feed &#x2013; SmartDukaan</description><lastBuildDate>Sun, 26 Apr 2026 05:58:04 +0530</lastBuildDate><generator>WebSVN 2.8.6-DEV</generator><language>en</language><link>https://svn.smartdukaan.com/log.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FTransactionRelatedTasks.java&amp;max=40&amp;</link><atom:link href="https://svn.smartdukaan.com/rss.php?path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FTransactionRelatedTasks.java&amp;repname=SmartDukaan" rel="self" type="application/rss+xml" />
<item><pubDate>Thu, 18 Dec 2025 19:12:51 +0530</pubDate><dc:creator>amit</dc:creator><title>Rev 35424 – Fix order billing vs cancellation race condition with pessimistic locking ...</title><description>&lt;div&gt;&lt;strong&gt;amit – 5 file(s) modified&lt;/strong&gt;&lt;br/&gt;Fix order billing vs cancellation race condition with pessimistic locking&lt;br /&gt;
&lt;br /&gt;
Problem:&lt;br /&gt;
- Concurrent billing and cancellation of the same order caused data inconsistency&lt;br /&gt;
- Money was refunded to wallet while order was also getting billed&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
- Added pessimistic locking (SELECT FOR UPDATE) to prevent concurrent modifications&lt;br /&gt;
- Added validation methods to check order state before billing/cancellation&lt;br /&gt;
- Optimized billing method to reduce lock duration with pre-fetching&lt;br /&gt;
&lt;br /&gt;
Changes:&lt;br /&gt;
- OrderRepository: Added selectByIdForUpdate, selectByOrderIdsForUpdate,&lt;br /&gt;
  selectByInvoiceNumbersForUpdate, selectAllByTransactionIdForUpdate,&lt;br /&gt;
  validateOrdersForBilling, validateOrderForRefund methods&lt;br /&gt;
- OrderRepositoryImpl: Implemented locking methods with PESSIMISTIC_WRITE&lt;br /&gt;
- TransactionServiceImpl: Updated billing methods with locking, fail-fast&lt;br /&gt;
  validation, pre-fetching to avoid N+1 queries&lt;br /&gt;
- ScheduledTasks: Updated removePartialBillingForTransaction with locking&lt;br /&gt;
- TransactionRelatedTasks: Updated reverseRTO with locking&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/TransactionRelatedTasks.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepository.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java&lt;br /&gt;~ /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/transaction/TransactionServiceImpl.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FTransactionRelatedTasks.java&amp;rev=35424</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FTransactionRelatedTasks.java&amp;rev=35424</guid></item>
<item><pubDate>Wed, 10 Jan 2024 19:06:32 +0530</pubDate><dc:creator>amit.gupta</dc:creator><title>Rev 32817 – Added Script to auto refund reversal</title><description>&lt;div&gt;&lt;strong&gt;amit.gupta – 2 file(s) modified&lt;/strong&gt;&lt;br/&gt;Added Script to auto refund reversal&lt;/div&gt;~ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ScheduledTasks.java&lt;br /&gt;+ /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/TransactionRelatedTasks.java&lt;br /&gt;</description><link>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FTransactionRelatedTasks.java&amp;rev=32817</link><guid>https://svn.smartdukaan.com/revision.php?repname=SmartDukaan&amp;path=%2Ftrunk%2Fprofitmandi-cron%2Fsrc%2Fmain%2Fjava%2Fcom%2Fsmartdukaan%2Fcron%2Fscheduled%2FTransactionRelatedTasks.java&amp;rev=32817</guid></item>
</channel></rss>