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 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.
|
||||
* 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
|
||||
* `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 Pterodactyl\Exceptions\Repository\RecordNotFoundException;
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
{
|
||||
@ -153,6 +154,26 @@ class Handler extends ExceptionHandler
|
||||
$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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user