Bug #66411

New locking API exceptions too generic

Added by Mathias Brodala 4 months ago. Updated 4 months ago.

Status:Resolved Start date:2015-04-14
Priority:Must have Due date:
Assigned To:Mathias Brodala % Done:

100%

Category:Default Spent time: -
Target version:7.2 (Frontend)
TYPO3 Version:7 Is Regression:No
PHP Version: Sprint Focus:Stabilization Sprint
Complexity:

Description

The new locking API currently only uses RuntimeException to hint at errors during lock acquisition.

While this already has the disadvantage of catching other @RuntimeException@s the issue becomes rather clear with the non-blocking example:

try {
  $result = $locker->acquire(LockingStrategyInterface::LOCK_CAPABILITY_SHARED | LockingStrategyInterface::LOCK_CAPABILITY_NOBLOCK);
catch (\RuntimeException $e) {
  if ($e->getCode() === 1428700748) {
    // some process owns the lock, let's do something else meanwhile
  }
}

This requires knowing about this special case and knowing the magic number here. A dedicated exception would make this clearer.


Related issues

follows Core - Feature #47712: Refactor Locking Resolved 2013-02-08

Associated revisions

Revision f51c1996
Added by Mathias Brodala 4 months ago

[FOLLOWUP][TASK] Add meaningful exceptions to new locking API

This adds dedicated exceptions to the new locking API which
vastly simplifies usage workflows.

Since the new API was not yet released, this is a non-breaking
change.

Resolves: #66411
Related: #47712
Releases: master
Change-Id: Iae44eaa121562469b64222f5837f7a48e6d9fc14
Reviewed-on: http://review.typo3.org/38683
Reviewed-by: Markus Klein <>
Tested-by: Markus Klein <>
Reviewed-by: Jigal van Hemert <>
Tested-by: Jigal van Hemert <>

History

#1 Updated by Gerrit Code Review 4 months ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#2 Updated by Gerrit Code Review 4 months ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#3 Updated by Gerrit Code Review 4 months ago

Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#4 Updated by Gerrit Code Review 4 months ago

Patch set 4 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#5 Updated by Gerrit Code Review 4 months ago

Patch set 5 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#6 Updated by Gerrit Code Review 4 months ago

Patch set 6 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#7 Updated by Gerrit Code Review 4 months ago

Patch set 7 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#8 Updated by Gerrit Code Review 4 months ago

Patch set 8 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/38683

#9 Updated by Anja Leichsenring 4 months ago

  • Sprint Focus set to Stabilization Sprint

#10 Updated by Mathias Brodala 4 months ago

  • Status changed from Under Review to Resolved
  • % Done changed from 50 to 100

Also available in: Atom PDF