mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-31 16:20:45 +00:00
A replica set whose server predates bug6288 does not expose GET /sailingserver/api/v1/livecontent; the master answers HTTP 400 with a text/plain body. SailingServerImpl.getLiveContent then deserialized a null JSON body and threw an NPE that surfaced in the UI as an unreadable error. A secondary bug aborted the whole batch on the first such server. Detect the non-success response cleanly and model the outcome as a first-class per-replica-set UNDETERMINED state, treated fail-safe (block-unless-forced): - New checked exception LiveContentCheckUnsupportedException in landscape.common (the only bundle both server.gateway and landscape see). - SailingServerImpl.getLiveContent inspects the response status and throws it instead of deserializing a null body. - LandscapeServiceImpl.checkForLiveContent catches per replica set, records the name as undetermined, and continues the loop (fixes batch-abort); checkForLiveContentUnlessForced now also blocks on undetermined sets. - LiveContentCheckResult carries a parallel undeterminedReplicaSetNames list (new 3-arg constructor; 2-arg preserved; serialVersionUID regenerated). JSON and GWT wire formats extended in lockstep; JSON deserializer tolerates the field's absence for backward compatibility. - UI shows a single combined dialog with a live-content section and a 'could not verify (server not upgraded)' section; forcing proceeds past both. English and German messages added. Also fixes a missing result.add(processJson) in SailingLandscapeResource that left the returned JSON array empty. Assisted-By: Claude (claude-4.8-opus)