String `%` operand raises a coercion error instead of printf-style formatting
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 76/100
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- Java
- Estrelas
- 787
- Forks
- 184
- Merge médio
- 6d 22h
- PRs com merge (30d)
- 1
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de HubSpot/jinjava
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 64/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 82/100
-
Jinjava 3.0Talvez livre de novo @jasmith-hs assumiu há 210 dias e não há nenhum pull request aberto. Aberta
-
Upgrade to Jackson 3.0.0Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
Todas as issues de HubSpot/jinjava
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
apache/arrow-java#1311 ·
Mantenedores costumam responder em até 2 dias
-
bug triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
IBM/networking-java-sdk#204 ·
-
bug Technical Debt
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
avniproject/avni-server#1080 ·