[
https://issues.apache.org/jira/browse/XBEAN-193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Blevins closed XBEAN-193.
-------------------------------
Resolution: Fixed
Fix Version/s: 3.9
Thanks, Mart! Patch applied.
Looks like this bug was added in
http://svn.apache.org/viewvc?view=revision&revision=1095858
We'll get this into TomEE as well.
> Wrong separator for JarArchives
> -------------------------------
>
> Key: XBEAN-193
> URL: https://issues.apache.org/jira/browse/XBEAN-193
> Project: XBean
> Issue Type: Bug
> Components: finder
> Affects Versions: 3.8, 3.9
> Environment: Windows,
> OpenEjb 4.0.0-beta-2-SNAPSHOT (using XBean 3.8)
> Reporter: Mart Köhler
> Priority: Minor
> Fix For: 3.9
>
> Attachments: jararchive_separator.patch
>
>
> Hello everybody,
> Problem:
> I'm using Apache TomEE from OpenEjb 4.0.0-beta-2-SNAPSHOT which uses the
> within the openejb-core the xbean-finder (3.8) for classloading purposes.
> I created a web archive which has a simple dependency to a jar. I defined an
> injectionpoint within a servlet. This injectionpoint points to a class which
> is located within the jar archive. The deployment of the web archive fails
> with an unsatisfied dependency exception because classloader isn't able to
> load the classes from the jar.
> I've found out that the JarArchive class (package
> org.apache.xbean.finder.archive) uses "File.separatorChar" in order to
> replace "." within the private method addClassName.
> As I know, the separator within a jar entry has to be '/'.
> "File.separatorChar" returns on a windows machine '\' instead. This behaviour
> causes the deployment problem.
> Solution:
> Instead of (JarArchive):
> className = className.replace(File.separatorChar, '.');
> it has to look something like this:
> className = className.replace('/', '.');
> The Archive class (org.apache.xbean.finder.archive) has to be changed for the
> unit tests
> Instead of:
> String name = clazz.getName().replace('.', File.separatorChar) + ".class";
> we need something like this:
> String name = clazz.getName().replace('.', '/') + ".class";
> Best regards,
> Mart Köhler
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira