You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by "Stefan Huber (Jira)" <ji...@apache.org> on 2020/10/13 14:38:00 UTC

[jira] [Comment Edited] (FREEMARKER-160) Resources not found

    [ https://issues.apache.org/jira/browse/FREEMARKER-160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17213144#comment-17213144 ] 

Stefan Huber edited comment on FREEMARKER-160 at 10/13/20, 2:37 PM:
--------------------------------------------------------------------

I'm getting scared...
Works (Supposed to not work):
{code:java}SupportedDatabases.class.getResource("/bayern/steinbrecher/dbconnector/query/templates/mysql/queryColumnNamesAndTypes.ftlh"){code}
Doesn't work (Supposed to work):
{code:java}SupportedDatabases.class.getResource("/bayern/steinbrecher/dbConnector/query/templates/mysql/queryColumnNamesAndTypes.ftlh"){code}
The only difference is the capital "C" in "dbConnector".


was (Author: trackersb):
I'm getting scared...
Works (Eventhough supposed to work):
{code:java}SupportedDatabases.class.getResource("/bayern/steinbrecher/dbconnector/query/templates/mysql/queryColumnNamesAndTypes.ftlh"){code}
Doesn't work (Not supposed to work):
{code:java}SupportedDatabases.class.getResource("/bayern/steinbrecher/dbConnector/query/templates/mysql/queryColumnNamesAndTypes.ftlh"){code}
The only difference is the capital "C" in "dbConnector".

> 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
>            Priority: Major
>         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)