Hello!
We have 2 similar environments and under Velocity Engine 2.3, the code works as
expected and we get back the template from the API call.
But when upgrading to 2.4.1 (or trying 2.4) one of our environments fails with
an exception. Unfortunately, it's in an environment where I can't use a
debugger.
I'm looking for ideas on how to resolve this issue or identify a specific bug
that can be reported to the Velocity Team for resolution.
Log + Exception
o.a.v.macro - autoload off: VM system will not automatically reload global
library macros
o.a.v.parser - XXXXXXXXXXXXXXXXXXXXXXXXXXXX: offset -1, count 79, length 4096
java.lang.StringIndexOutOfBoundsException: offset -1, count 79, length 4096
at java.base/java.lang.String.checkBoundsOffCount(String.java:3304)
~[?:?]
at java.base/java.lang.String.rangeCheck(String.java:280) ~[?:?]
at java.base/java.lang.String.<init>(String.java:276) ~[?:?]
at
org.apache.velocity.runtime.parser.VelocityCharStream.GetImage(VelocityCharStream.java:434)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParserTokenManager.jjFillToken(StandardParserTokenManager.java:7796)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParserTokenManager.getNextToken(StandardParserTokenManager.java:7866)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParser.jj_scan_token(StandardParser.java:5611)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParser.jj_3R_EndingZeroWidthWhitespace_1591_5_49(StandardParser.java:5448)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParser.jj_3_3(StandardParser.java:5454)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParser.jj_2_3(StandardParser.java:3886)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParser.Statement(StandardParser.java:654)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParser.process(StandardParser.java:495)
~[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.parser.StandardParser.parse(StandardParser.java:184)
[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.RuntimeInstance.parse(RuntimeInstance.java:1344)
[velocity-engine-core-2.4.jar:2.4]
at org.apache.velocity.Template.process(Template.java:145)
[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:429)
[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:346)
[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1694)
[velocity-engine-core-2.4.jar:2.4]
at
org.apache.velocity.app.VelocityEngine.mergeTemplate(VelocityEngine.java:284)
[velocity-engine-core-2.4.jar:2.4]
Environment that throws the exception:
Linux / Tomcat
Server version name: Apache Tomcat/9.0.104
Server built: Apr 4 2025 12:32:55 UTC
Server version number: 9.0.104.0
OS Name: Linux
OS Version: 4.14.355-277.647.amzn2.x86_64
Architecture: amd64
Java Home: /usr/lib/jvm/java-11-amazon-corretto.x86_64
JVM Version: 11.0.27+6-LTS
JVM Vendor: Amazon.com Inc.
Environment that does not throw the exception:
Windows / TomEE
INFO: Server version name: Apache Tomcat (TomEE)/9.0.82 (8.0.16)
INFO: Server built: Oct 11 2023 13:15:08 UTC
INFO: Server version number: 9.0.82.0
INFO: OS Name: Windows 11
INFO: OS Version: 10.0
INFO: Architecture: amd64
INFO: Java Home: C:\Program Files\Amazon Corretto\jdk11.0.26_4
INFO: JVM Version: 11.0.26+4-LTS
INFO: JVM Vendor: Amazon.com Inc.
Robert Kish (Consultant) | Application Developer, IT Application Services | NJ
Dept. of Agriculture
CONFIDENTIALITY NOTICE: The information contained in this communication from
New Jersey Department of Agriculture is privileged and confidential and is
intended for the sole use of the persons or entities who are the addressees. If
you are not an intended recipient of this email, the dissemination,
distribution, copying or use of the information it contains is strictly
prohibited. If you have received this communication in error, please
immediately contact the sender of this email message to arrange for the return
of this information.