Arg.java truncates supplementary numeric character references
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 25/100
Direzione di ricerca
Read src/main/java/org/xembly/Arg.java around lines 122–125, then trace Arg.unescape() and Verbs.simpleCommand() as described in the issue. Add regression coverage for decimal references above U+FFFF and values outside the Unicode range; confirm the parsed text matches a literal supplementary character. An open linked pull request (#425) already addresses this issue.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Arg.symbol() truncates decimal XML character references above U+FFFF to a single Java char. On master, the script below therefore sets the text to U+F600 instead of U+1F600 (😀):
new Xembler(new Directives("ADD 'r'; SET '😀';")).xml();
The loss occurs in src/main/java/org/xembly/Arg.java:122-125:
private static char symbol(final String symbol) throws XmlContentException {
final char chr;
if ('#' == symbol.charAt(0)) {
chr = Arg.legal((char) Integer.parseInt(symbol.substring(1)));
The parser should preserve the complete Unicode code point, producing the same text as a literal emoji:
new Xembler(new Directives().add("r").set("😀")).xml();
Return a string from symbol(), validate numeric references as XML code points before narrowing, and use Character.toChars() for supplementary characters. Add regression coverage for decimal supplementary references and values outside the Unicode range. This report is based on static tracing through Verbs.simpleCommand(), Arg.unescape(), and Arg.symbol(); no local build was run.
- Lingua principale
- Java
- Stelle
- 248
- Fork
- 33
- Merge medio
- 23h 52m
- PR unite (30g)
- 43
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di yegor256/xembly
-
let's use Xnav instead of `XPathFactory`Forse di nuovo libera @volodya-lombrozo l’ha presa 627 giorni fa e non c’è nessuna pull request aperta. Apertaenhancement
yegor256/xembly#246 · 3 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Dependency DashboardApertawontfix
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
I maintainer di solito rispondono entro 1 giorno
-
standalone=noForse già presa @Inf1mum l’ha presa 1 giorno fa. ApertaDEV enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
yegor256/xembly#53 · 7 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di yegor256/xembly
Issue simili
-
Document and enforce pull request review guidelinesForse già presa @dashorst l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
`Time.at(t, in: nil)` returns UTC instead of the local time (or the time zone of `t`), unlike CRubyAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
hermes-queue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
chrisalunlloyd2-sudo/mindpalace#349 ·
I maintainer di solito rispondono entro 1 giorno
-
Retry-After parser accepts invalid delay-seconds valuesForse già presa @Dhruvraj-Rana l’ha presa oggi. ApertaBug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
open-telemetry/opentelemetry-java#9018 ·
I maintainer di solito rispondono entro 2 giorni
-
bug priority: medium Review effort [1-5]: 2 status: needs-triage type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
carlos-emr/carlos#5818 ·
I maintainer di solito rispondono entro 1 giorno