Catch session already closed exception in destructor

This commit is contained in:
Victor Dubiniuk 2017-04-12 21:25:22 +03:00 committed by Joas Schilling
parent 8ef25a7628
commit 131df248ef
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
2 changed files with 7 additions and 2 deletions

View File

@ -64,7 +64,12 @@ class CryptoSessionData implements \ArrayAccess, ISession {
* Close session if class gets destructed * Close session if class gets destructed
*/ */
public function __destruct() { public function __destruct() {
try {
$this->close(); $this->close();
} catch (SessionNotAvailableException $e){
// This exception can occur if session is already closed
// So it is safe to ignore it and let the garbage collector to proceed
}
} }
protected function initializeSession() { protected function initializeSession() {

View File

@ -151,7 +151,7 @@ class Internal extends Session {
*/ */
private function validateSession() { private function validateSession() {
if ($this->sessionClosed) { if ($this->sessionClosed) {
throw new \Exception('Session has been closed - no further changes to the session are allowed'); throw new SessionNotAvailableException('Session has been closed - no further changes to the session are allowed');
} }
} }
} }