You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PropertyConditionPredicate выбрасывает NPE при попытке доступа к properties пустой Schema во время анализа покрытия. Ошибка возникает потому что SwaggerCoverageV3RestAssured создает Schema без инициализации properties, а PropertyConditionPredicate предполагает что properties всегда инициализированы.
If the current behavior is a bug, please provide steps to reproduce:
Использовать фильтр SwaggerCoverageV3RestAssured с REST-assured: RestAssured.given().filter(new SwaggerCoverageV3RestAssured())
Сделать любой запрос с телом
Попытаться сгенерировать отчет о покрытии
Ошибка:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.Map.entrySet()" because the return value of "io.swagger.v3.oas.models.media.Schema.getProperties()" is null
at com.github.viclovsky.swagger.coverage.core.predicate.PropertyConditionPredicate.lambda$check$2(PropertyConditionPredicate.java:32)
What is the expected behavior?
PropertyConditionPredicate должен корректно обрабатывать null в properties, либо:
Обеспечивая создание Schema с инициализированными properties в SwaggerCoverageV3RestAssured
Либо добавляя проверку на null в PropertyConditionPredicate
What is the motivation / use case for changing the behavior?
Текущая реализация ломает анализ покрытия для любого запроса с телом из-за необработанного NPE. Это затрагивает всех пользователей независимо от того, используют они сгенерированные клиенты или нет, так как фильтр всегда создает новую пустую Schema.
Other information
В документации указано что "Swagger-coverage работает хорошо с клиентами, сгенерированными из swagger", однако это не имеет отношения к проблеме, так как SwaggerCoverageV3RestAssured создает новую пустую Schema независимо от типа клиента:
// в SwaggerCoverageV3RestAssured
MediaType mediaType = new MediaType();
mediaType.setSchema(new Schema()); // properties == null
// в PropertyConditionPredicate
.flatMap(o -> (Stream<Map.Entry<String, Schema>>) o.getProperties().entrySet().stream()) // NPE здесь
The text was updated successfully, but these errors were encountered:
I'm submitting a ...
[x] bug report
[ ] feature request
What is the current behavior?
PropertyConditionPredicate выбрасывает NPE при попытке доступа к properties пустой Schema во время анализа покрытия. Ошибка возникает потому что SwaggerCoverageV3RestAssured создает Schema без инициализации properties, а PropertyConditionPredicate предполагает что properties всегда инициализированы.
If the current behavior is a bug, please provide steps to reproduce:
Использовать фильтр SwaggerCoverageV3RestAssured с REST-assured:
RestAssured.given().filter(new SwaggerCoverageV3RestAssured())
Сделать любой запрос с телом
Попытаться сгенерировать отчет о покрытии
Ошибка:
What is the expected behavior?
PropertyConditionPredicate должен корректно обрабатывать null в properties, либо:
Обеспечивая создание Schema с инициализированными properties в SwaggerCoverageV3RestAssured
Либо добавляя проверку на null в PropertyConditionPredicate
What is the motivation / use case for changing the behavior?
Текущая реализация ломает анализ покрытия для любого запроса с телом из-за необработанного NPE. Это затрагивает всех пользователей независимо от того, используют они сгенерированные клиенты или нет, так как фильтр всегда создает новую пустую Schema.
Other information
В документации указано что "Swagger-coverage работает хорошо с клиентами, сгенерированными из swagger", однако это не имеет отношения к проблеме, так как SwaggerCoverageV3RestAssured создает новую пустую Schema независимо от типа клиента:
The text was updated successfully, but these errors were encountered: