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

Crash on "type": ["object"] on object properties #51

Closed
dktapps opened this issue Oct 15, 2021 · 0 comments
Closed

Crash on "type": ["object"] on object properties #51

dktapps opened this issue Oct 15, 2021 · 0 comments
Assignees
Labels
bug Something isn't working

Comments

@dktapps
Copy link
Contributor

dktapps commented Oct 15, 2021

Describe the bug
The below schema causes the following error on code generation:

Fatal error: Uncaught Error: Call to a member function getClassPath() on null in C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\Property
Processor\Property\ObjectProcessor.php:51
Stack trace:
#0 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\PropertyProcessor\Property\MultiTypeProcessor.php(165): PHPModelGenerator\PropertyProc
essor\Property\ObjectProcessor->process('aliases', Object(PHPModelGenerator\Model\SchemaDefinition\JsonSchema))
#1 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\PropertyProcessor\Property\MultiTypeProcessor.php(84): PHPModelGenerator\PropertyProce
ssor\Property\MultiTypeProcessor->processSubProperties('aliases', Object(PHPModelGenerator\Model\SchemaDefinition\JsonSchema), Object(PHPModelGenerator\Model\Property\Property))
#2 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\PropertyProcessor\PropertyFactory.php(72): PHPModelGenerator\PropertyProcessor\Propert
y\MultiTypeProcessor->process('aliases', Object(PHPModelGenerator\Model\SchemaDefinition\JsonSchema))
#3 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\PropertyProcessor\Property\BaseProcessor.php(279): PHPModelGenerator\PropertyProcessor
\PropertyFactory->create(Object(PHPModelGenerator\PropertyProcessor\PropertyMetaDataCollection), Object(PHPModelGenerator\SchemaProcessor\SchemaProcessor), Object(PHPModelGenerator\Model\Schema), 'aliases', Obj
ect(PHPModelGenerator\Model\SchemaDefinition\JsonSchema))
#4 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\PropertyProcessor\Property\BaseProcessor.php(75): PHPModelGenerator\PropertyProcessor\
Property\BaseProcessor->addPropertiesToSchema(Object(PHPModelGenerator\Model\SchemaDefinition\JsonSchema))
#5 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\PropertyProcessor\PropertyFactory.php(72): PHPModelGenerator\PropertyProcessor\Propert
y\BaseProcessor->process('Crash', Object(PHPModelGenerator\Model\SchemaDefinition\JsonSchema))
#6 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\SchemaProcessor\SchemaProcessor.php(191): PHPModelGenerator\PropertyProcessor\Property
Factory->create(Object(PHPModelGenerator\PropertyProcessor\PropertyMetaDataCollection), Object(PHPModelGenerator\SchemaProcessor\SchemaProcessor), Object(PHPModelGenerator\Model\Schema), 'Crash', Object(PHPMode
lGenerator\Model\SchemaDefinition\JsonSchema))
#7 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\SchemaProcessor\SchemaProcessor.php(137): PHPModelGenerator\SchemaProcessor\SchemaProc
essor->generateModel('', 'Crash', Object(PHPModelGenerator\Model\SchemaDefinition\JsonSchema), Object(PHPModelGenerator\Model\SchemaDefinition\SchemaDefinitionDictionary), true)
#8 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\SchemaProcessor\SchemaProcessor.php(104): PHPModelGenerator\SchemaProcessor\SchemaProc
essor->processSchema(Object(PHPModelGenerator\Model\SchemaDefinition\JsonSchema), '', 'Crash', Object(PHPModelGenerator\Model\SchemaDefinition\SchemaDefinitionDictionary), true)
#9 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\ModelGenerator.php(125): PHPModelGenerator\SchemaProcessor\SchemaProcessor->process(Ob
ject(PHPModelGenerator\Model\SchemaDefinition\JsonSchema))
#10 C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\generate-schemas.php(74): PHPModelGenerator\ModelGenerator->generateModels(Object(PHPModelGenerator\SchemaProvider\RecursiveDirectoryProv
ider), 'C:\\Users\\dylan-...')
#11 {main}
  thrown in C:\Users\dylan-work\Documents\projects\pocketmine-mp\deps\DataModels\vendor\wol-soft\php-json-schema-model-generator\src\PropertyProcessor\Property\ObjectProcessor.php on line 51

Expected behavior
The model should be generated exactly as if I'd used type: object.

Schema

{
	"$schema": "http://json-schema.org/draft-04/schema#",
	"type": "object",
	"properties": {
		"aliases": {
			"type": ["object"]
		}
	}
}

Generator config: https://github.com/pmmp/DataModels/blob/d91723d5cccb8879532430ba4aff80949c440034/generate-schemas.php

Version:
0.21.5

Additional context
I was trying to use type arrays to create explicitly nullable object fields.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants