JSON-LD: a malformed IRI is silently dropped — `checking`/`strict` and the `ErrorHandler` never sees it
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
Direzione di ricerca
Partite dal punto di ingresso TitaniumJsonLdOptions.get e seguite il modo in cui la convalida degli URI di Titanium interagisce con l’ErrorHandler di Jena e con le opzioni checking/strict. Aggiungete una copertura di regressione per un’IRI non valida, verificando che il nodo non venga eliminato silenziosamente, che Jena segnali il problema e che le IRI valide continuino a essere analizzate correttamente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Version
6.1 / main
What happened?
A JSON-LD document with a malformed IRI loses an entire node, and the parse reports success.
No warning and no error reaches ErrorHandler, and neither checking(true) nor strict(true) changes this.
Jena delegates JSON-LD parsing to Titanium.
Titanium validates uris itself and when it rejects one, it discards the node, logs it and does not propagate it.
So the term is gone and Jena's own IRI checking can't catch it.
At best even if all iris are valid, it also means than each of them is validated twice.
As Jena operates at the RDF level, it makes more sense to keep it as the single source of truth for those checks.
The fix is simple:
If it is not defined upstream, TitaniumJsonLdOptions.get always takes Titanium's defaults, which include uriValidation = Full.
ALways setting Titanium's uri validation policy to None disables this Titanium validation allowing Jena's downstream checks to properly apply its own validation.
Happy to submit a PR if we agree on the approach.
Are you interested in making a pull request?
Yes
- Lingua principale
- Java
- Stelle
- 1.5k
- Fork
- 729
- Merge medio
- 1g 8h
- PR unite (30g)
- 56
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 apache/jena
-
rset command throws NPE in ResultsFormat.guessSyntaxForse già presa @Ostrzyciel l’ha presa 15 giorni fa. Apertabug Cmd
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
IRI resolution against a same-scheme base rewrites absolute info: IRIs (info:a/b -> info:a/a/b) since jena-iri removalForse già presa @afs l’ha presa oggi. Aperta
apache/jena#4388 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Failing tests on Locale nb-noForse già presa @OyvindLGjesdal l’ha presa 5 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
apache/jena#4372 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
apache/jena#4364 · 15 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
OpDatasetNames (empty GRAPH ?g {} in quad form) fails with ClassCastException on TDB2 (& ARQNotImplemented elsewhere)Forse già presa @krickert l’ha presa 5 giorni fa. Apertabug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
apache/jena#4362 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
bug key bindings source editor
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Visual COBOL: missing 11.0 and 12.0, and 9.0 date differs from Rocket Software's lifecycle pageAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
endoflife-date/endoflife.date#11561 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
conductor-oss/conductor#1824 ·
I maintainer di solito rispondono entro 5 giorni
-
Type: Possible bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
AntennaPod/AntennaPod#8887 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Card-Forge/forge#12710 ·
I maintainer di solito rispondono entro 1 giorno