https://bz.apache.org/bugzilla/show_bug.cgi?id=70049

Robert Rodewald <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|INVALID                     |---
             Status|RESOLVED                    |REOPENED

--- Comment #4 from Robert Rodewald <[email protected]> ---
I investigated the matter a little further and looked into the source code of
MyBatis.

The explanation is in this comment form DefaultVFS class:

/*
 * Some servlet containers allow reading from directory resources like a text
file, listing the child
 * resources one per line. However, there is no way to differentiate between
directory and file resources
 * just by reading them. To work around that, as each line is read, try to look
it up via the class loader
 * as a child of the current resource. If any line fails then we assume the
current resource is not a
 * directory.
 */

So MyBatis discovers the directory content by reading from a file: URL which
points to a directory. This works (at least on my system) and gives the
directory content line by line.

In the next step MyBatis reads from each directory entry it found (which is the
class file Absence.class in my case), appends it's first line to the path and
tries to get this "resource" from the class loader. This is where the new
validation from
https://github.com/apache/tomcat/commit/3ac1c7b0a8c7d2fec42bc050843b7f68fc2c9098
yields null and then subsequently an IllegalArgumentException. MyBatis only
handles InvalidPathException and FileSystemException but not
IllegalArgumentException and this breaks the discovery mechanism.

Perhaps throwing InvalidPathException instead of IllegalArgumentException in
StandardRoot.java:259 or just returning null would be a better (more backwards
compatible) option?

Otherwise, I can open a bug report with MyBatis and/or work around the
discovery mechanism of MyBatis entirely.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to