Details
-
Type:
Bug
-
Status:
Reopened
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.2.2
-
Fix Version/s: None
-
Component/s: Validators
-
Labels:None
-
Environment:PHP 5.3.1, Mac OS X 10.6
Description
I wonder why Validation exception is thrown only if internal nesting level of transaction is 1 and the manual nesting level is not considered.
Line 262 - lib/Doctrine/Transaction.php:
if ($this->_internalNestingLevel == 1) {
$tmp = $this->invalid;
$this->invalid = array();
throw new Doctrine_Validator_Exception($tmp);
}
I have a large database with a lot of tables and relationships. At some case the validation exception is not thrown if the validation fails.
If I add $this->_nestingLevel into this condition:
if ($this->_internalNestingLevel == 1 || $this->_nestingLevel == 1) {
$tmp = $this->invalid;
$this->invalid = array();
throw new Doctrine_Validator_Exception($tmp);
}
Then the validation exception is thrown as excepted.
I don't know why you ignore here the nesting level.
It would be great if you could explain me more about these lines.
I ran the unit test with this modification and got the same result.
Activity
Fabian Spillner
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Issue Type | Improvement [ 4 ] | Bug [ 1 ] |
Fabian Spillner
made changes -
| Attachment | DC676TestCase.php [ 10600 ] |
Jonathan H. Wage
made changes -
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Fix Version/s | 1.2.3 [ 10051 ] | |
| Resolution | Fixed [ 1 ] |
Jonathan H. Wage
made changes -
| Resolution | Fixed [ 1 ] | |
| Status | Resolved [ 5 ] | Reopened [ 4 ] |
Jonathan H. Wage
made changes -
| Fix Version/s | 1.2.3 [ 10051 ] |
This list may be incomplete, as errors occurred whilst retrieving source from linked applications:
- Request to http://www.doctrine-project.org/fisheye/ failed: Error in remote call to 'FishEye 0 (http://www.doctrine-project.org/fisheye/)' (http://www.doctrine-project.org/fisheye) [AbstractRestCommand{path='/rest-service-fe/search-v1/crossRepositoryQuery', params={query=DC-676, expand=changesets[-21:-1].revisions[0:29],reviews}, methodType=GET}] : Received status code 503 (Service Temporarily Unavailable)
Additional information: On doctrine 1.1.x the exception is thrown without this modification.