Skip to content

Commit ef55be3

Browse files
committed
Merge remote-tracking branch 'origin/AC-15893' into spartans_pr_10112025
2 parents b127bcb + c4f3e8d commit ef55be3

File tree

5 files changed

+1372
-6
lines changed

5 files changed

+1372
-6
lines changed

app/code/Magento/Sales/Controller/Adminhtml/Order/Create/LoadBlock.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,16 @@ public function execute()
129129

130130
$result = $resultPage->getLayout()->renderElement('content');
131131
if ($request->getParam('as_js_varname')) {
132-
$this->_objectManager->get(\Magento\Backend\Model\Session::class)->setUpdateResult($result);
132+
$session = $this->_objectManager->get(\Magento\Backend\Model\Session::class);
133+
134+
// Compress data for JSON responses to prevent session bloat while maintaining redirect pattern
135+
if ($asJson && function_exists('gzencode')) {
136+
// Level 6 compression for balance of speed/size
137+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
138+
$session->setUpdateResult(['compressed' => true, 'data' => gzencode($result, 6)]);
139+
} else {
140+
$session->setUpdateResult($result);
141+
}
133142
return $this->resultRedirectFactory->create()->setPath('sales/*/showUpdateResult');
134143
}
135144
return $this->resultRawFactory->create()->setContents($result);

app/code/Magento/Sales/Controller/Adminhtml/Order/Create/ShowUpdateResult.php

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ public function __construct(
4545
}
4646

4747
/**
48-
* Show item update result from loadBlockAction
49-
* to prevent popup alert with resend data question
48+
* Show item update result from loadBlockAction to prevent popup alert with resend data question
5049
*
5150
* @return \Magento\Framework\Controller\Result\Raw
5251
*/
@@ -55,9 +54,25 @@ public function execute()
5554
/** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
5655
$resultRaw = $this->resultRawFactory->create();
5756
$session = $this->_objectManager->get(\Magento\Backend\Model\Session::class);
58-
if ($session->hasUpdateResult() && is_scalar($session->getUpdateResult())) {
59-
$resultRaw->setContents($session->getUpdateResult());
57+
58+
if ($session->hasUpdateResult()) {
59+
$updateResult = $session->getUpdateResult();
60+
61+
// Handle compressed data (for JSON responses to reduce session bloat)
62+
if (is_array($updateResult) && isset($updateResult['compressed']) && $updateResult['compressed']) {
63+
if (isset($updateResult['data']) && function_exists('gzdecode')) {
64+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
65+
$decompressed = gzdecode($updateResult['data']);
66+
// gzdecode returns false on error, handle gracefully
67+
$resultRaw->setContents(is_string($decompressed) ? $decompressed : '');
68+
} else {
69+
$resultRaw->setContents('');
70+
}
71+
} elseif (is_scalar($updateResult)) {
72+
$resultRaw->setContents($updateResult);
73+
}
6074
}
75+
6176
$session->unsUpdateResult();
6277
return $resultRaw;
6378
}

0 commit comments

Comments
 (0)