[BUG] Server won't start (and channels won't deploy) on a Turkish JVM locale
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Anfängerfreundlichkeit
- 66/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- java
- Bereich
- backend, database, internationalization
Rechercherichtung
Start with JdbcDao.addMetaDataColumn, where StringUtils.lowerCase builds the query name, and with the MyBatis mapper files that hold the type aliases. Reproduce by running the server with -Duser.language=tr -Duser.country=TR and deploying a channel. Done means startup and channel deploy both succeed under the Turkish locale, using Locale.ROOT for case-insensitive lookups or explicit class names in the mappers.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Spun off from #476. It all started with a test failing on my Italian machine. Out of curiosity I tried Turkish, the classic locale troublemaker, and things got worse: the server doesn't even start.
Describe the bug
Turkish has a dotted and a dotless i, so "I".toLowerCase() gives ı. OIE trips over this twice:
- Startup: MyBatis 3.1.1 lowercases type aliases with the default locale, so
"Integer"becomes"ınteger", nobody knows what that is, and startup loops. - Deploy: with (1) worked around, every channel deploy fails.
JdbcDao.addMetaDataColumnbuilds the query name withStringUtils.lowerCase, so it looks foraddMetaDataColumnStrıng, finds nothing, and Derby says "SQL text pointer is null".
Consistently reproducible.
To Reproduce
Run the server with -Duser.language=tr -Duser.country=TR, then deploy any channel.
Expected behavior
OIE works regardless of the system locale.
Environment
- OS: macOS
- Java: Zulu 17.0.17
- Version:
main@ a13e6afb6
Workaround(s)
Run the JVM with an English locale.
Notes
As offered in #476, happy to look into a fix if that works for you. Rough ideas:
- for (1), use
java.lang.Integerin the mappers (25 lines; MyBatis is fixed upstream since 3.2.0, but that's a big jump); - for (2), use
Locale.ROOTwhere casing is used for lookups; - add a
tr_TRsmoke scenario so it stays fixed. That covers the CI half of #476.
Open to other approaches, of course.
- Vorherrschende Sprache
- Java
- Sterne
- 227
- Forks
- 81
- Ø Merge
- 2 T. 16 Std.
- Gemergte PRs (30 T.)
- 12
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus OpenIntegrationEngine/engine
-
Outdated GitHub workflow action versionsEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
OpenIntegrationEngine/engine#485 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
OpenIntegrationEngine/engine#478 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
OpenIntegrationEngine/engine#355 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
OpenIntegrationEngine/engine#347 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
OpenIntegrationEngine/engine#313 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in OpenIntegrationEngine/engine
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
apache/rocketmq-dashboard#7250 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
HttpMaxFrameSizeTest.sendOversizedMessageTest() passes silently when maxFrameSize is not enforcedOffen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
apache/activemq#2706 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
federicoiosue/Omni-Notes#1032 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
unitycatalog/unitycatalog#2025 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 78/100
krizaka/krizaka-notifications#22 ·
Maintainer antworten meist innerhalb von 1 Tag