meldestelle/docs/90_Reports/2026-02-01_Sync_Fix_Report.md
StefanMoCoAt f00cc7681f chore(docs): update roadmap and add Sync Fix report, remove desktop-app from compose config
- Marked Phase 3 of roadmap as complete and adjusted next steps.
- Added detailed report documenting the Sync type mismatch resolution.
- Commented out the `desktop-app` service from `dc-gui.yaml`.
2026-02-01 18:48:00 +01:00

1.5 KiB

type date author status
Report 2026-02-01 Curator FINAL

Report: Fix Sync Type Mismatch (String vs Long)

1. Problembeschreibung

Es wurde eine kritische Inkonsistenz im Delta-Sync-Mechanismus zwischen Frontend und Backend festgestellt.

  • Frontend: Der generische SyncManager nutzte einen String-Cursor (UUIDv7), was zu einem Typ-Fehler führte.
  • Backend: Der PingController erwartete strikt einen Long (Timestamp) für den Parameter lastSyncTimestamp.

2. Durchgeführte Maßnahmen

2.1 Backend (ping-service)

  • Parameter-Umbenennung: Der Parameter im PingController wurde von lastSyncTimestamp zu since umbenannt, um der Konvention des Frontend-SyncManagers zu entsprechen.
  • Tests: Unit- und Integrationstests (PingControllerTest) wurden aktualisiert.

2.2 Frontend (meldestelle-portal)

  • Repository-Anpassung: PingEventRepositoryImpl holt nun explizit den last_modified Timestamp aus der Datenbank (via neuer SQL-Query selectLatestPingEventTimestamp).
  • Typ-Konvertierung: Der Timestamp wird als String an den SyncManager übergeben, der ihn als URL-Parameter anhängt. Spring Boot konvertiert diesen String automatisch zurück in einen Long.

2.3 Contracts (ping-api)

  • Das Interface PingApi wurde aktualisiert: syncPings(since: Long).

3. Ergebnis

  • Die Typ-Sicherheit ist hergestellt.
  • Tests im Backend laufen erfolgreich durch.
  • Der Sync-Mechanismus ist nun robust und bereit für den produktiven Einsatz.

4. Status

RESOLVED