Stefan Huber created FREEMARKER-160:
---------------------------------------

             Summary: Resources not found
                 Key: FREEMARKER-160
                 URL: https://issues.apache.org/jira/browse/FREEMARKER-160
             Project: Apache Freemarker
          Issue Type: Bug
    Affects Versions: 2.3.30
            Reporter: Stefan Huber
         Attachments: packageStructure.png

Used technologies:
 * JDK 14
 * Gradle 6.5

I use {code:java}setClassForTemplateLoading(SupportedDatabases.class, 
Path.get("templates", "mysql")){code} to specify the location of all my 
template files. Eventhough the files are seemingly correctly placed relative to 
the loading class (see attachment), resources are not found and the following 
error is thrown:
{code:java}
Caused by: freemarker.template.TemplateNotFoundException: Template not found 
for name "checkDBExistence.ftlh".
The name was interpreted by this TemplateLoader: 
ClassTemplateLoader(resourceLoaderClass=bayern.steinbrecher.dbConnector.query.SupportedDatabases,
 basePackagePath="templates/mysql/" /* relatively to resourceLoaderClass pkg 
*/).
{code}
I figured out that based on https://stackoverflow.com/a/14740160 
{code:java}Thread.currentThread().getContextClassLoader(){code} is a way more 
reliable choice in context of my modular projects.

For testing the bug the following minimal setup can be used:
- Java project (Maven or Gradle) that imports 
{code}bayern.steinbrecher:DBConnector:0.9{code}
- A main function which consist of the following call 
{code:java}SupportedDatabases.values(){code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to