forked from Alex/Pterodactyl-Panel
Fix a bug causing DataIntegrityExceptions to not be caught correctly and cause a second exception... whoops.
This commit is contained in:
parent
114afb8646
commit
cf31d4276c
@ -11,6 +11,8 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
|
|||||||
* Fixes the redis password not saving correctly when setting up the environment from the command line.
|
* Fixes the redis password not saving correctly when setting up the environment from the command line.
|
||||||
* Fixes a bug with transaction handling in many areas of the application that would cause validation error messages
|
* Fixes a bug with transaction handling in many areas of the application that would cause validation error messages
|
||||||
and other session data to not be persisted properly when using the database as the session driver.
|
and other session data to not be persisted properly when using the database as the session driver.
|
||||||
|
* Fix a bug introduced at some point in the past that causes internal data integrity exceptions to not bubble up to
|
||||||
|
the user correctly, leading to extraneous and confusing exception messages.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* `allocation_limit` for servers now defaults to a null value, and is not required in PATCH/POST requests when adding
|
* `allocation_limit` for servers now defaults to a null value, and is not required in PATCH/POST requests when adding
|
||||||
|
@ -15,6 +15,7 @@ use Illuminate\Database\Eloquent\ModelNotFoundException;
|
|||||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
use Symfony\Component\HttpKernel\Exception\HttpException;
|
||||||
use Pterodactyl\Exceptions\Repository\RecordNotFoundException;
|
use Pterodactyl\Exceptions\Repository\RecordNotFoundException;
|
||||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
||||||
|
|
||||||
class Handler extends ExceptionHandler
|
class Handler extends ExceptionHandler
|
||||||
{
|
{
|
||||||
@ -153,6 +154,26 @@ class Handler extends ExceptionHandler
|
|||||||
$connections->rollBack(0);
|
$connections->rollBack(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Because of some breaking change snuck into a Laravel update that didn't get caught
|
||||||
|
// by any of the tests, exceptions implementing the HttpExceptionInterface get marked
|
||||||
|
// as being HttpExceptions, but aren't actually implementing the HttpException abstract.
|
||||||
|
//
|
||||||
|
// This is incredibly annoying because we can't just temporarily override the handler to
|
||||||
|
// allow these (at least without taking on a high maintenance cost). Laravel 5.8 fixes this,
|
||||||
|
// so when we update (or have updated) this code can be removed.
|
||||||
|
//
|
||||||
|
// @see https://github.com/laravel/framework/pull/25975
|
||||||
|
// @todo remove this code when upgrading to Laravel 5.8
|
||||||
|
if ($exception instanceof HttpExceptionInterface && ! $exception instanceof HttpException) {
|
||||||
|
$exception = new HttpException(
|
||||||
|
$exception->getStatusCode(),
|
||||||
|
$exception->getMessage(),
|
||||||
|
$exception,
|
||||||
|
$exception->getHeaders(),
|
||||||
|
$exception->getCode()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return parent::render($request, $exception);
|
return parent::render($request, $exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user