JSON-LD: a malformed IRI is silently dropped — `checking`/`strict` and the `ErrorHandler` never sees it
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Comience en el punto de entrada TitaniumJsonLdOptions.get y siga cómo la validación de URI de Titanium interactúa con el ErrorHandler de Jena y las opciones checking/strict. Añada cobertura de regresión para una IRI mal formada, confirmando que el nodo no se descarta silenciosamente, que Jena informa del problema y que las IRI válidas se siguen analizando correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Java
- Estrellas
- 1.5k
- Forks
- 729
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 56
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/jena
-
rset command throws NPE in ResultsFormat.guessSyntaxPosiblemente ocupada @Ostrzyciel la tomó hace 15 días. Abiertobug Cmd
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
IRI resolution against a same-scheme base rewrites absolute info: IRIs (info:a/b -> info:a/a/b) since jena-iri removalPosiblemente ocupada @afs la tomó hace 1 día. Abierto
apache/jena#4388 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Failing tests on Locale nb-noPosiblemente ocupada @OyvindLGjesdal la tomó hace 5 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
apache/jena#4372 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
apache/jena#4364 · 15 comentarios ·
Los mantenedores suelen responder en 1 día
-
OpDatasetNames (empty GRAPH ?g {} in quad form) fails with ClassCastException on TDB2 (& ARQNotImplemented elsewhere)Posiblemente ocupada @krickert la tomó hace 6 días. Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
apache/jena#4362 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/jena
Issues similares
-
ARM: Q flag should be stickyAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
NationalSecurityAgency/ghidra#10155 ·
Los mantenedores suelen responder en 2 días
-
bug web-ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 67/100
jenkinsci/jenkins#27705 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
"item-tooltip-keyboard-fix" crashes the game when opening the Items tab of the statistics menuAbiertomod bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
elmital/FixMCStats#65 · 3 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
googleads/googleads-mobile-flutter#1541 ·
Los mantenedores suelen responder en 4 días
-
Keyboard crashes Chrome tabsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Julow/Unexpected-Keyboard#1490 ·
Los mantenedores suelen responder en 4 días