[
https://issues.apache.org/jira/browse/TAP5-2096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jochen Kemnade closed TAP5-2096.
--------------------------------
Resolution: Fixed
Fix Version/s: 5.4
> JBoss 4.2.3 Classpath scanning fails for nested paths
> -----------------------------------------------------
>
> Key: TAP5-2096
> URL: https://issues.apache.org/jira/browse/TAP5-2096
> Project: Tapestry 5
> Issue Type: Bug
> Components: tapestry-ioc
> Affects Versions: 5.4
> Reporter: Dustin Woods
> Assignee: Jochen Kemnade
> Labels: patch
> Fix For: 5.4
>
> Attachments:
> 0001-JBoss-4.2.3-Classpath-scanning-fails-for-nested-path.patch
>
>
> When creating pages in a subdirectory under 'pages', the ClasspathScannerImpl
> class recursively calls scanDir with only the last part of the package name
> and not the entire package name resulting in pages not being able to be
> loaded.
> Changing the line:
> final String nestedPackagePath = fileName + "/";
> to:
> final String nestedPackagePath = packagePath + fileName + "/";
> /**
> * Scan a dir for classes. Will recursively look in the supplied
> directory and all sub directories.
> *
> * @param packagePath
> * Name of package that this directory corresponds to.
> * @param packageDir
> * Dir to scan for classes.
> */
> private void scanDir(String packagePath, File packageDir)
> {
> if (packageDir.exists() && packageDir.isDirectory())
> {
> for (final File file : packageDir.listFiles())
> {
> String fileName = file.getName();
> if (file.isDirectory())
> {
> final String nestedPackagePath = fileName + "/";
> queue.push(new IOWork()
> {
> public void run() throws IOException
> {
> scanDir(nestedPackagePath, file);
> }
> });
> }
> if (matcher.matches(packagePath, fileName))
> {
> matches.add(packagePath + fileName);
> }
> }
> }
> }
> /**
> * Scan a dir for classes. Will recursively look in the supplied
> directory and all sub directories.
> *
> * @param packagePath
> * Name of package that this directory corresponds to.
> * @param packageDir
> * Dir to scan for classes.
> */
> private void scanDir(String packagePath, File packageDir)
> {
> if (packageDir.exists() && packageDir.isDirectory())
> {
> for (final File file : packageDir.listFiles())
> {
> String fileName = file.getName();
> if (file.isDirectory())
> {
> final String nestedPackagePath = packagePath +
> fileName + "/";
> queue.push(new IOWork()
> {
> public void run() throws IOException
> {
> scanDir(nestedPackagePath, file);
> }
> });
> }
> if (matcher.matches(packagePath, fileName))
> {
> matches.add(packagePath + fileName);
> }
> }
> }
> }
--
This message was sent by Atlassian JIRA
(v6.2#6252)