janephp: Fatal Error - $context empty in SchemaNormalizer
When running janephp v4 for an openapi v2.0 swagger file, after about 40 minutes I get this error:
PHP Notice: Undefined index: document-origin in /home/user/projects/janephp/vendor/jane-php/open-api/Normalizer/SchemaNormalizer.php on line 43
PHP Stack trace:
PHP 1. {main}() /home/user/projects/janephp/vendor/jane-php/open-api/bin/jane-openapi:0
PHP 2. Jane\OpenApi\Application->run() /home/user/projects/janephp/vendor/jane-php/open-api/bin/jane-openapi:22
PHP 3. Jane\OpenApi\Application->doRun() /home/user/projects/janephp/vendor/symfony/console/Application.php:148
PHP 4. Jane\OpenApi\Application->doRunCommand() /home/user/projects/janephp/vendor/symfony/console/Application.php:272
PHP 5. Jane\OpenApi\Command\GenerateCommand->run() /home/user/projects/janephp/vendor/symfony/console/Application.php:1011
PHP 6. Jane\OpenApi\Command\GenerateCommand->execute() /home/user/projects/janephp/vendor/symfony/console/Command/Command.php:255
PHP 7. Jane\OpenApi\JaneOpenApi->generate() /home/user/projects/janephp/vendor/jane-php/open-api/Command/GenerateCommand.php:69
PHP 8. Jane\OpenApi\Generator\Psr18ClientGenerator->generate() /home/user/projects/janephp/vendor/jane-php/json-schema/Generator/ChainGenerator.php:28
PHP 9. Jane\OpenApi\Generator\Psr7OperationGenerator->createOperation() /home/user/projects/janephp/vendor/jane-php/open-api/Generator/ClientGenerator.php:43
PHP 10. Jane\OpenApi\Generator\Psr7EndpointGenerator->createEndpointClass() /home/user/projects/janephp/vendor/jane-php/open-api/Generator/OperationGenerator.php:33
PHP 11. Jane\OpenApi\Generator\Psr7EndpointGenerator->getConstructor() /home/user/projects/janephp/vendor/jane-php/open-api/Generator/EndpointGenerator.php:74
PHP 12. Jane\OpenApi\Generator\Psr7EndpointGenerator->resolveParameter() /home/user/projects/janephp/vendor/jane-php/open-api/Generator/EndpointGenerator.php:145
PHP 13. Jane\JsonSchemaRuntime\Reference->resolve() /home/user/projects/janephp/vendor/jane-php/open-api/Generator/EndpointGenerator.php:647
PHP 14. Jane\OpenApi\Generator\Psr7EndpointGenerator->Jane\OpenApi\Generator\{closure:/home/user/projects/janephp/vendor/jane-php/open-api/Generator/EndpointGenerator.php:629-647}() /home/user/projects/janephp/vendor/jane-php/json-schema-runtime/Reference.php:68
PHP 15. Symfony\Component\Serializer\Serializer->denormalize() /home/user/projects/janephp/vendor/jane-php/open-api/Generator/EndpointGenerator.php:631
PHP 16. Jane\OpenApi\Normalizer\BodyParameterNormalizer->denormalize() /home/user/projects/janephp/vendor/symfony/serializer/Serializer.php:191
PHP 17. Symfony\Component\Serializer\Serializer->denormalize() /home/user/projects/janephp/vendor/jane-php/open-api/Normalizer/BodyParameterNormalizer.php:64
PHP 18. Jane\OpenApi\Normalizer\SchemaNormalizer->denormalize() /home/user/projects/janephp/vendor/symfony/serializer/Serializer.php:191
PHP Fatal error: Uncaught TypeError: Argument 2 passed to Jane\JsonSchemaRuntime\Reference::__construct() must be of the type string, null given, called in /home/user/projects/janephp/vendor/jane-php/open-api/Normalizer/SchemaNormalizer.php on line 43 and defined in /home/user/projects/janephp/vendor/jane-php/json-schema-runtime/Reference.php:28
Stack trace:
#0 /home/user/projects/janephp/vendor/jane-php/open-api/Normalizer/SchemaNormalizer.php(43): Jane\JsonSchemaRuntime\Reference->__construct('#/definitions/S...', NULL)
#1 /home/user/projects/janephp/vendor/symfony/serializer/Serializer.php(191): Jane\OpenApi\Normalizer\SchemaNormalizer->denormalize(Object(stdClass), 'Jane\\OpenApi\\Mo...', 'json', Array)
#2 /home/user/projects/janephp/vendor/jane-php/open-api/Normalizer/BodyParameterNormalizer.php(64): Symfony\Component\Serializer\Serializer->denormalize(Object(stdClass), 'Jane\\OpenApi\\Mo...', 'jso in /home/user/projects/janephp/vendor/jane-php/json-schema-runtime/Reference.php on line 28
If necessary I can provide the swagger file on request, but it looks more like a general issue to me (missing validation if $context['document-origin'] is present).
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 20 (9 by maintainers)
@Korbeil Funny to see i’m never being mentioned in the blogpost while i’ve contributed to it for sure. Anyways glad to see there is a huge performance increase. and that we all can profit form it.
Yes, that’s because of some recent PRs, you can see more details on last release blog post here: https://jolicode.com/blog/jane-v5-3-performances-authentication-openapi-2.
By the way, this issue is solved, if you have issue not related to first post, please open a new issue. I will close this one.
@Niehztog I moved a bit forward for your issue. Your file is no longuer blocked while generating and takes only ~20min now. But, when generating, some Normalizer, our Naming class output related Normalizer file name and this occur:
I have to see how I can shorten this filename 😄
Here’s a screenshot of the debugger when it crashes