aws-cloudformation / aws-cloudformation/cloudformation-cli-java-plugin
Codegen doesn't support nullable types
- Ngôn ngữ chính
- Java
- Star
- 30
- Fork
- 48
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
This is the property that I’m trying to define:
"Canceled": {
"description": "POSIX Timestamp of cancellation of this downtime (null if not canceled)",
"type": ["integer", "null"]
},
This should be ok according to JsonSchema, but `cfn-cli generate` fails and rpdk.log contains this:
```
Traceback (most recent call last):
File "/Users/.../programming/aws-cloudformation-rpdk-nightly/env/lib/python3.7/site-packages/rpdk/core/cli.py", line 95, in main
args.command(args)
File "/Users/.../programming/aws-cloudformation-rpdk-nightly/env/lib/python3.7/site-packages/rpdk/core/generate.py", line 15, in generate
project.generate()
File "/Users/.../programming/aws-cloudformation-rpdk-nightly/env/lib/python3.7/site-packages/rpdk/core/project.py", line 190, in generate
return self._plugin.generate(self)
File "/Users/.../programming/aws-cloudformation-rpdk-nightly/env/lib/python3.7/site-packages/rpdk/java/codegen.py", line 255, in generate
pojos = pojo_resolver.resolve_pojos()
File "/Users/.../programming/aws-cloudformation-rpdk-nightly/env/lib/python3.7/site-packages/rpdk/java/pojo_resolver.py", line 58, in resolve_pojos
java_property_map[prop_name] = self._java_property_type(prop_schema)
File "/Users/.../programming/aws-cloudformation-rpdk-nightly/env/lib/python3.7/site-packages/rpdk/java/pojo_resolver.py", line 88, in _java_property_type
return primitive_types_map[json_type]
TypeError: unhashable type: 'list'
```
Hướng dẫn đóng góp
Hướng nghiên cứu
Lỗi nằm trong rpdk/java/pojo_resolver.py, tại _java_property_type, được gọi qua cfn-cli generate; hãy bắt đầu từ đó và tái hiện lỗi bằng schema nullable Canceled. Công việc được hoàn tất khi quá trình tạo thành công cho thuộc tính ["integer", "null"] mà không có lỗi unhashable-list.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- tooling
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 35/100