Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Validate mirth.properties at startup and refuse to run on any invalid value

Abierto
#413 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
22/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
java
Área
backend, tooling

Línea de trabajo

Start from Mirth.run() and how mirth.properties (plus conf/mirth.properties.d drop-ins from #405) is loaded and read ad-hoc (getInt, Boolean.parseBoolean, testPort). There is no central key/type/constraint registry yet; that schema and a fail-closed startup pass (plus a -t-style check mode) are the work. Done means any invalid value names the property and reason and the process never starts. This is design, not a first-timer patch.

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

Descripción

mirth.properties values are read ad-hoc across the codebase with inline defaults, and validation is inconsistent: some settings fail fast, some crash, some silently coerce. On adjacent lines of Mirth.run(), http.port = banana throws an uncaught ConversionException via isUsingHttp()'s default-less getInt and the server thread dies with a stack trace, while https.port = banana right next to it refuses to start cleanly with "port is invalid" (testPort). Booleans coerce to false (Boolean.parseBoolean), https.*.protocols passes through unvalidated, while a few settings do have ad-hoc guards (the DH key-size clamp, password requirements). Same class of mistake, different outcomes.

Target the model nginx (nginx -t), Apache (configtest), haproxy (-c), and sshd (-t) use: one validation pass over the whole merged config (base + conf/mirth.properties.d drop-ins, #405) at startup, refuse to run on any invalid value, with a clear message naming the property and the reason. Never start on a config that doesn't fully parse.

Why this is architectural, not a patch:

  • No config schema exists. nginx validates everything because its parser is the schema; every directive has a known type and constraints. mirth.properties has no central registry of valid key -> type -> constraints -> required. Step one is building that registry.
  • Validate the merged config against the registry at startup; fail closed with a per-property message on any type/range/enum violation.
  • Mistyped keys can't be caught the way nginx catches an unknown directive: htp.port = 8080 silently leaves http.port at its default. The registry would need to flag unknown keys (warn or fail) - a design call.
  • Offer a check mode (-t-style "validate and exit") so operators can test before a restart.

Context: came up during #405, which added fail-closed handling for unreadable/malformed drop-in files. This covers invalid values in readable files.

Lenguaje dominante
Java
Estrellas
227
Forks
81
Merge medio
2 d 16 h
PR fusionados (30 d)
12

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OpenIntegrationEngine/engine

Todos los issues de OpenIntegrationEngine/engine

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.