Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BUG Safely handle empty injector factory responses #8142

Merged

Conversation

tractorcow
Copy link
Contributor

Fixes issue with ImageBackendFactory returning null and breaking injector

[Warning] Creating default object from empty value
GET /admin/settings/
Line 795 in C:\wamp64\www\timezoneone\vendor\silverstripe\framework\src\Core\Injector\Injector.php

Source
786 The name of the property to set
787 @param mixed $value
788 The value to set
789 /
790 protected function setObjectProperty($object, $name, $value)
791 {
792 if (ClassInfo::hasMethod($object, 'set' . $name)) {
793 $object->{'set' . $name}($value);
794 } else {
795 $object->$name = $value;
796 }
797 }
798
799 /*
800 @deprecated 4.0.0:5.0.0 Use Injector::has() instead
801 * @param $name
Trace
Monolog\ErrorHandler->handleError(2, Creating default object from empty value, C:\wamp64\www\timezoneone\vendor\silverstripe\framework\src\Core\Injector\Injector.php, 795, Array)
Injector.php:795
SilverStripe\Core\Injector\Injector->setObjectProperty(, Quality, 50)
Injector.php:637
SilverStripe\Core\Injector\Injector->inject(, SilverStripe\Assets\Image_Backend)
Injector.php:606
SilverStripe\Core\Injector\Injector->instantiate(Array, SilverStripe\Assets\Image_Backend, prototype)
Injector.php:988
SilverStripe\Core\Injector\Injector->getNamedService(SilverStripe\Assets\Image_Backend, , Array)
Injector.php:941
SilverStripe\Core\Injector\Injector->get(SilverStripe\Assets\Image_Backend, , Array)
Injector.php:1111
SilverStripe\Core\Injector\Injector->createWithArgs(SilverStripe\Assets\Image_Backend, Array)
ImageManipulation.php:713
SilverStripe\Assets\File->getImageBackend()
ImageManipulation.php:727
SilverStripe\Assets\File->getWidth()
AssetAdmin.php:1166
SilverStripe\AssetAdmin\Controller\AssetAdmin->getObjectFromData(SilverStripe\Assets\Image)
UploadField.php:208
SilverStripe\AssetAdmin\Forms\UploadField->getEncodedItems()
UploadField.php:193
SilverStripe\AssetAdmin\Forms\UploadField->getSchemaStateDefaults()
FormField.php:1562
SilverStripe\Forms\FormField->getSchemaState()
UploadField.php:276
SilverStripe\AssetAdmin\Forms\UploadField->getAttributes()
FormField.php:701
....

Fixes issue with ImageBackendFactory returning null and breaking injector
@robbieaverill robbieaverill merged commit 27e24a4 into silverstripe:4.0 Jun 11, 2018
@tractorcow tractorcow deleted the pulls/4.0/fix-injector-empty branch June 11, 2018 03:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants