aws-cloudformation / aws-cloudformation/cloudformation-cli-java-plugin

[Proposal] Use unboxed boolean types in ResourceHandlerRequest

Abierto
#341 3 comentarios 0 reacciones 0 asignados Ver en GitHub
enhancement good first issue
Lenguaje dominante
Java
Estrellas
30
Forks
48
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

There are 2 recent changes that landed in `ResourceHandlerRequest`: https://github.com/aws-cloudformation/cloudformation-cli-java-plugin/commit/ebca1dc12e187b484ed599db65d726a6b23a14c0#diff-adfb207dac8dff5107b68b36280ccad4525f92176184ad2ffff9aa7e591b2e8a and https://github.com/aws-cloudformation/cloudformation-cli-java-plugin/commit/e34f0472d0bc67953f41d4ceb666a175d0a7fb2d#diff-adfb207dac8dff5107b68b36280ccad4525f92176184ad2ffff9aa7e591b2e8a.

Both changes favor boxed Boolean over primitive types.

As a result, the usage of this class implies on importing BooleanUtils or a similar helper in order to avoid constructions like: `if (request.getSnapshotRequested() != null && request.getSnapshotRequested() == true) { ... }`.

And the code that is performing a "naive" boolean comparison like: `if (request.getSnapshotRequested()) { ... }` will fail with a null-pointer exception.

The same stands for the rollback flag.

I wonder if var type boxing was done for some specific reasons? If there are no strict reasons, I would vote for unboxing them to simplify condition checking.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Empieza localizando ResourceHandlerRequest y revisando los dos commits enlazados que introdujeron los campos Boolean boxed. Comprueba cómo se usan snapshotRequested y rollback y, después, determina si los booleanos primitivos son apropiados y si las pruebas existentes cubren las comprobaciones de condiciones null o booleanas. Se considera terminado cuando la justificación está resuelta y los tipos de flag elegidos funcionan de forma segura para los callers.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
tooling
Tipo de issue
Refactorización
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.