@@ 87-94 (lines=8) @@ | ||
84 | ||
85 | // The transactional policy is determined by the annotation, if found. |
|
86 | // If missing, default behaviour is to do nothing (no transaction started). |
|
87 | if ($annotation === null) { |
|
88 | $policy = Transactional::NOT_REQUIRED; |
|
89 | } elseif ($annotation->getPolicy() === null) { |
|
90 | $policy = $this->container->getParameter( |
|
91 | Configuration::ROOT_NODE_NAME . '.' . Configuration::DEFAULT_POLICY); |
|
92 | } else { |
|
93 | $policy = $annotation->getPolicy(); |
|
94 | } |
|
95 | ||
96 | if (($policy === Transactional::NOT_REQUIRED) && ($annotation === null)) { |
|
97 | // No annotation found: there is probably a bug in the pointcut class, because the interceptor should not |
|
@@ 124-135 (lines=12) @@ | ||
121 | $this->afterMethodInvocationSuccess($transactionRequired); |
|
122 | } catch (Exception $e) { |
|
123 | // Manage special exceptions (commit or rollback strategy). |
|
124 | if ($annotation === null) { |
|
125 | // At this point, it means there is no inner transaction context for the method. |
|
126 | $noRollbackExceptions = null; |
|
127 | } elseif ($annotation->getNoRollbackExceptions() === null) { |
|
128 | // No exceptions set in the annotation (even if the parameter was found), use the default configuration. |
|
129 | $noRollbackExceptions = $this->container->getParameter( |
|
130 | Configuration::ROOT_NODE_NAME . '.' . Configuration::NO_ROLLBACK_EXCEPTIONS |
|
131 | ); |
|
132 | } else { |
|
133 | // Use the annotation parameter. |
|
134 | $noRollbackExceptions = $annotation->getNoRollbackExceptions(); |
|
135 | } |
|
136 | $this->afterMethodInvocationFailure($transactionRequired, $e, $noRollbackExceptions); |
|
137 | } |
|
138 |