Validate mirth.properties at startup and refuse to run on any invalid value
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 22/100
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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.propertieshas 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 = 8080silently leaveshttp.portat 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.
- 主要言語
- Java
- スター
- 227
- フォーク
- 81
- 平均マージ
- 2日 18時間
- マージ済み PR(30日)
- 12
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
OpenIntegrationEngine/engine のほかの issue
-
Outdated GitHub workflow action versions対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OpenIntegrationEngine/engine#485 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
OpenIntegrationEngine/engine#478 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OpenIntegrationEngine/engine#355 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OpenIntegrationEngine/engine#347 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OpenIntegrationEngine/engine#313 ·
メンテナーはふだん 1 日以内に返信
OpenIntegrationEngine/engine の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
2026 Error Report
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
triplea-game/triplea#15096 ·
メンテナーはふだん 1 日以内に返信
-
[Bug][API] Switching workflow versions leaves schedules online対応中かも @zhuangchong が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
apache/dolphinscheduler#18731 ·
メンテナーはふだん 1 日以内に返信
-
Implement JDBC Domain Enums (`SqlCategory`, `SqlExecutionStatus`, `SqlExecutionType`) in Core Moduleオープンcore-module enhancement good first issue
難易度 1/5 1〜3時間 初心者へのやさしさ 87/100
sdlc-pro/spring-lens#531 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
apache/rocketmq-dashboard#7340 ·
メンテナーはふだん 3 日以内に返信