[
https://issues.apache.org/jira/browse/FREEMARKER-106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16669488#comment-16669488
]
Amar Gurung commented on FREEMARKER-106:
----------------------------------------
Much appreciated.Thanks for the prompt reply Daniel. Use case is - I have a
bash script which has variables say for example to find length of an array
${#array[@]} and based on length do some validation. Also, it contains some
valid variables like ${X_a} etc.
I agree that variable references can't contain #. Could you please suggest me
some work around how to continue on exception.
I tried
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER); but
it's not working.
I'm short I want parser to continue parsing next sequence of tokens even if it
fails to parse some variable/token.
> Unable to parse variable containing special char ${# with
> freemarker.template.Template.process(object,writer)
> -------------------------------------------------------------------------------------------------------------
>
> Key: FREEMARKER-106
> URL: https://issues.apache.org/jira/browse/FREEMARKER-106
> Project: Apache Freemarker
> Issue Type: Bug
> Components: engine
> Affects Versions: 2.3.23
> Reporter: Amar Gurung
> Priority: Major
>
> Unable to parse variable containing $\{# e.g ${#marker_files[@]} or
> $\{#array[@]}
> Sample snippet:
> -----------------------------
> Configuration cfg = new Configuration(Configuration.VERSION_2_3_28);
> cfg.setLogTemplateExceptions(false);
> cfg.setClassForTemplateLoading(FtlExpressionEvaluator.class, "templates");
> cfg.setDefaultEncoding("UTF-8");
> cfg.setLocale(Locale.US);
> cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
> cfg.setNumberFormat("0.######");
> Template t = new Template("freeMarkerTemplate", new StringReader(line), cfg);
>
> Error stack:
> freemarker.core.ParseException: Syntax error in template "freeMarkerTemplate"
> in line 1, column 13:
> Lexical error: encountered "m" (109), after "#".
> at freemarker.core.TokenMgrError.toParseException(TokenMgrError.java:260)
> at freemarker.template.Template.<init>(Template.java:269)
> at freemarker.template.Template.<init>(Template.java:203)
> at freemarker.template.Template.<init>(Template.java:182)
> at freemarker.template.Template.<init>(Template.java:125)
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)