String `%` operand raises a coercion error instead of printf-style formatting
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 76/100
Piste de recherche
Start with the % handling in src/main/java/com/hubspot/jinjava/el/ext/ExtendedParser.java:421-424 and run the supplied {{ 'number'%r }} reproduction. Trace how AstBinary.MOD processes the operands, then verify that the string-left-operand case renders as Jinja2 does without the reported coercion error.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Jinja2 applies printf-style formatting to 'text' % operand. Jinjava parses % as the JUEL modulo operator and coerces the left operand to a number, so a string left operand fails to render.
Affected: master df50b0d7. Releases 2.7.6, 2.8.3 and 2.8.4 behave the same.
Reproduction
{{ 'number'%r }}
Jinja2 renders number. Jinjava raises:
com.hubspot.jinjava.interpret.FatalTemplateErrorsException: Cannot coerce 'number' of class java.lang.String to class java.lang.Double (incompatible value)
Root cause
ExtendedParser maps the % token to AstBinary.MOD (src/main/java/com/hubspot/jinjava/el/ext/ExtendedParser.java:421-424). The JUEL implementation of MOD converts both operands to numbers, and there is no string formatting path for a string left operand.
- Langage dominant
- Java
- Étoiles
- 787
- Forks
- 184
- Merge moyen
- 6 j 22 h
- PR mergées (30 j)
- 1
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de HubSpot/jinjava
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 82/100
-
Jinjava 3.0Peut-être à nouveau libre @jasmith-hs l’a pris il y a 210 jours, et aucune pull request n’est ouverte. Ouverte
-
Upgrade to Jackson 3.0.0Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
Toutes les issues de HubSpot/jinjava
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
apache/arrow-java#1311 ·
Les mainteneurs répondent en général sous 2 jours
-
bug triage
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
security
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
IBM/networking-java-sdk#204 ·