Skip to content

Commit ebe34fa

Browse files
SUPESC-851 Fixed out of range issue for id_oms_state_machine_lock. (#10975)
SUPESC-851 Fixed out of range issue for id_oms_state_machine_lock.
1 parent a842ee9 commit ebe34fa

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

src/Spryker/Zed/Oms/Persistence/Propel/Schema/spy_oms.schema.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
</table>
5050

5151
<table name="spy_oms_state_machine_lock" identifierQuoting="true">
52-
<column name="id_oms_state_machine_lock" required="true" type="INTEGER" autoIncrement="true" primaryKey="true"/>
52+
<column name="id_oms_state_machine_lock" required="true" type="BIGINT" autoIncrement="true" primaryKey="true"/>
5353
<column name="identifier" type="VARCHAR" size="255" required="true"/>
5454
<column name="expires" type="TIMESTAMP" required="true"/>
5555
<column name="details" type="LONGVARCHAR"/>

tests/SprykerTest/Zed/Oms/Business/Lock/TriggerLockerTest.php

+21
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use DateInterval;
1212
use DateTime;
1313
use Orm\Zed\Oms\Persistence\SpyOmsStateMachineLock;
14+
use Orm\Zed\Oms\Persistence\SpyOmsStateMachineLockQuery;
1415
use Spryker\Zed\Oms\Business\Exception\LockException;
1516

1617
/**
@@ -26,6 +27,11 @@
2627
*/
2728
class TriggerLockerTest extends Unit
2829
{
30+
/**
31+
* @var int
32+
*/
33+
protected const INTEGER_OVERFLOW_VALUE = 2147483648;
34+
2935
/**
3036
* @var \SprykerTest\Zed\Oms\OmsBusinessTester
3137
*/
@@ -118,4 +124,19 @@ public function testClearLocksWillRemoveAllLockEntries(): void
118124
$triggerLocker->clearLocks();
119125
$this->tester->assertLockedEntityCount(0);
120126
}
127+
128+
/**
129+
* @return void
130+
*/
131+
public function testBigintLockIdIsSupported(): void
132+
{
133+
// Act
134+
$this->tester->insertOmsStateMachineLockByIdUsingRawQuery(static::INTEGER_OVERFLOW_VALUE);
135+
136+
$omsStateMachineLockQuery = new SpyOmsStateMachineLockQuery();
137+
$lockEntity = $omsStateMachineLockQuery->findOneByIdOmsStateMachineLock(static::INTEGER_OVERFLOW_VALUE);
138+
139+
//Assert
140+
$this->assertNotNull($lockEntity);
141+
}
121142
}

tests/SprykerTest/Zed/Oms/_support/OmsBusinessTester.php

+26
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@
2020
use Generated\Shared\Transfer\OrderTransfer;
2121
use Generated\Shared\Transfer\QuoteTransfer;
2222
use Generated\Shared\Transfer\StoreTransfer;
23+
use Orm\Zed\Oms\Persistence\Map\SpyOmsStateMachineLockTableMap;
2324
use Orm\Zed\Oms\Persistence\SpyOmsStateMachineLockQuery;
2425
use Orm\Zed\Sales\Persistence\SpySalesOrder;
2526
use Orm\Zed\Sales\Persistence\SpySalesOrderItem;
2627
use Orm\Zed\Sales\Persistence\SpySalesOrderQuery;
2728
use PHPUnit\Framework\ExpectationFailedException;
2829
use Propel\Runtime\Collection\ObjectCollection;
30+
use Propel\Runtime\Propel;
2931
use ReflectionClass;
3032
use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\ValidationMiddlewarePlugin;
3133
use Spryker\Zed\MessageBroker\MessageBrokerDependencyProvider;
@@ -80,6 +82,11 @@ class OmsBusinessTester extends Actor
8082
*/
8183
public const FAKE_SKU = 'FAKE_SKU';
8284

85+
/**
86+
* @var string
87+
*/
88+
protected const LOCKED_ENTITY_IDENTIFIER = '1';
89+
8390
/**
8491
* @return void
8592
*/
@@ -479,6 +486,25 @@ public function getOrderByIdSalesOrder(int $idSalesOrder): OrderTransfer
479486
);
480487
}
481488

489+
/**
490+
* @param int $identifier
491+
*
492+
* @return void
493+
*/
494+
public function insertOmsStateMachineLockByIdUsingRawQuery(int $identifier): void
495+
{
496+
$query = sprintf(
497+
"INSERT INTO %s (id_oms_state_machine_lock, identifier, expires) VALUES (%d, '%s', '%s')",
498+
SpyOmsStateMachineLockTableMap::TABLE_NAME,
499+
$identifier,
500+
static::LOCKED_ENTITY_IDENTIFIER,
501+
'2025-01-01 00:00:00',
502+
);
503+
504+
$connection = Propel::getConnection();
505+
$connection->query($query);
506+
}
507+
482508
/**
483509
* @return \Spryker\Zed\Oms\Business\Reader\ProcessCacheReaderInterface
484510
*/

0 commit comments

Comments
 (0)