Details
Description
VelocityEngine throws a strange NPE if it's not initialized. It'd be better
if it threw an Exception with a meaningful error message.
From jeichels@optonline.net <jeichels@optonline.net>
I had another problem that I think can help others in the future. In looking
through the archives I noticed other people having the same null pointer
exception I was having. I went through the code and noticed that if a person
did not "init()" a velocity engine, the resourceManager never gets
initialized. When they call the function below in RuntimeInstance.java, they
get the null pointer exception.
public Template getTemplate(String name, String encoding)
throws ResourceNotFoundException, ParseErrorException, Exception
ERROR [http8080-Processor2] TemplateToStringManagerBD.getContentAsString() -
VelocityEngine failed to merge the template.
java.lang.NullPointerException
at org.apache.velocity.runtime.RuntimeInstance.getTemplate
(RuntimeInstance.java:835)
at org.apache.velocity.runtime.RuntimeInstance.getTemplate
(RuntimeInstance.java:817)
at org.apache.velocity.runtime.RuntimeSingleton.getTemplate
(RuntimeSingleton.java:285)
at org.apache.velocity.app.Velocity.getTemplate(Velocity.java:469)
at
com.jb.commonmvc.view.template.velocity.TemplateToStringManagerBD.getContentAsS
tring(TemplateToStringManagerBD.java:120)
at com.jb.commonmvc.transport.email.EmailTemplate.emailTemplate
(EmailTemplate.java:37)