You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by AndyG <an...@orprovision.com> on 2012/01/31 12:00:57 UTC

Trunk classloading is broken with case sensitive paths

Case sensitive jar paths are being assumed.

Found EjbModule in classpath:
d:\OrproVisionServer\openejb\lib\openejb-core-4.0.0-beta-3-SNAPSHOT.jar
Found EjbModule in classpath:
D:\OrproVisionServer\openejb\lib\openejb-core-4.0.0-beta-3-SNAPSHOT.jar

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/d:/OrproVisionServer/openejb/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/D:/OrproVisionServer/openejb/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]



--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344116.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
great!

- Romain


2012/2/1 AndyG <an...@orprovision.com>

> So, it turns out to be BasicURLClassPath.addJarsToPath was not doing any
> kind
> of URL checking.
>
> This method is called from several locations, and the subsequent call to
> dir.list was/is returning file names with varying case - Not sure why this
> would be, but could be the thread context.
>
> The class behind the invoked 'addURLMethod' does a basic internal check on
> the provided URL but case matching is not performed, so it is possible to
> add duplicate URLs. This means 'we' should ensure that URLs are consistent.
>
> Added the following lines to provide a consistent URL:
>
> new URL(new File(dir,
>
> name).getCanonicalFile().getAbsoluteFile().toURI().toURL().toExternalForm())
>
> ...and fall back or error to :
>
> new URL(new File(dir,
> name).getAbsoluteFile().toURI().toURL().toExternalForm())
>
> Andy.
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4347885.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
So, it turns out to be BasicURLClassPath.addJarsToPath was not doing any kind
of URL checking.

This method is called from several locations, and the subsequent call to
dir.list was/is returning file names with varying case - Not sure why this
would be, but could be the thread context.

The class behind the invoked 'addURLMethod' does a basic internal check on
the provided URL but case matching is not performed, so it is possible to
add duplicate URLs. This means 'we' should ensure that URLs are consistent.

Added the following lines to provide a consistent URL:

new URL(new File(dir,
name).getCanonicalFile().getAbsoluteFile().toURI().toURL().toExternalForm())

...and fall back or error to :

new URL(new File(dir,
name).getAbsoluteFile().toURI().toURL().toExternalForm())

Andy.

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4347885.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
David Blevins-2 wrote
> 
> 
> That definitely seems to be the case.
> 
> I would focus debugging efforts at line 87 of
> org.apache.openejb.cli.Bootstrap 
> 
> 

OK, this is more than likely due to the windows service (Commons Daemon)
already having jars on the classpath. From the get go "openejb-core-*.jar"
and "openejb-daemon-*.jar" are added twice and that can't be good - Working
on a solution now.

Andy.


--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4347322.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by David Blevins <da...@gmail.com>.
On Jan 31, 2012, at 9:24 AM, AndyG wrote:

> I also think this is something that maybe just been highlighted by a
> classloader issue somewhere else.

That definitely seems to be the case.

I would focus debugging efforts at line 87 of org.apache.openejb.cli.Bootstrap 

The uppercase and lowercase 'D' drive is definitely odd.


-David


> Has anything been changed with class
> loading over the weekend? Also can't see anything specific but gut tells me
> this is not as simple as it looks.
> 
> The following log entries are of concern:
> 
> SLF4J: Class path contains multiple SLF4J bindings.
> SLF4J: Found binding in
> [jar:file:/d:/OrproVisionServer/openejb/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in
> [jar:file:/D:/OrproVisionServer/openejb/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> 
> I am filtering out the duplicates as discussed and OpenEJB is happy - no
> more duplicate deployment id's etc. But, multiple SLF4J bindings in on the
> same path usually boil down to a classloader issue?
> 
> --
> View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345206.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.


Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
I also think this is something that maybe just been highlighted by a
classloader issue somewhere else. Has anything been changed with class
loading over the weekend? Also can't see anything specific but gut tells me
this is not as simple as it looks.

The following log entries are of concern:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/d:/OrproVisionServer/openejb/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/D:/OrproVisionServer/openejb/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]

I am filtering out the duplicates as discussed and OpenEJB is happy - no
more duplicate deployment id's etc. But, multiple SLF4J bindings in on the
same path usually boil down to a classloader issue?

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345206.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
i removed them because it was complicated to use in real life and a file
was far more easy.

however the include part can be interesting but i didnt know if addind an
"include" file means to ignore the exclude one or not. Maybe something to
do.

Any opinion is welcome about it.

- Romain


2012/2/1 AndyG <an...@orprovision.com>

> In the process of checking this out I have put the following back into
> NewLoaderLogic.
>
> public static final String ADDITIONAL_EXCLUDES =
> System.getProperty("openejb.additional.exclude");
> public static final String ADDITIONAL_INCLUDE =
> System.getProperty("openejb.additional.include");
>
> I know it was only supposed to be a temporary fix, but I like the idea of
> having those options in addition to the file and defaults
>
> Andy.
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4347223.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
In the process of checking this out I have put the following back into
NewLoaderLogic.

public static final String ADDITIONAL_EXCLUDES =
System.getProperty("openejb.additional.exclude");
public static final String ADDITIONAL_INCLUDE =
System.getProperty("openejb.additional.include");

I know it was only supposed to be a temporary fix, but I like the idea of
having those options in addition to the file and defaults 

Andy.

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4347223.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
opps i missed a post, you didnt send your classloader right? is it the app
one or a created one?

- Romain


2012/1/31 AndyG <an...@orprovision.com>

> I have already posted the results of debugging both getResources calls -
> the
> whole list is irrelevant , there are duplicates for 'every' url in the
> list,
> one with an upper case drive letter and the other lower case.
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345225.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
I have already posted the results of debugging both getResources calls - the
whole list is irrelevant , there are duplicates for 'every' url in the list,
one with an upper case drive letter and the other lower case. 

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345225.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
META-INF is removed but as the same file can respond for both getResources
you can get twice the same url.

Can you debug this method and print out what returns both getresources
please?

- Romain


2012/1/31 AndyG <an...@orprovision.com>

> It is the issue as that list is used for scanning, but not sure why it has
> just cropped up over the weekend.
>
> Have seen your changes to the exclude and cannot see anything that would
> cause this. The duplicates need to be weeded out though as every jar is
> basically scanned twice.
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345036.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
It is the issue as that list is used for scanning, but not sure why it has
just cropped up over the weekend.

Have seen your changes to the exclude and cannot see anything that would
cause this. The duplicates need to be weeded out though as every jar is
basically scanned twice. 

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345036.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
i'm not sure it is your issue but i'm able to get twice some urls too.

ths code should be enhanced to ignore already added urls

getting back a file and using File.compareTo can be enough.

- Romain


2012/1/31 Romain Manni-Bucau <rm...@gmail.com>

> in urlset class it does:
>
> private static List<URL> getUrls(ClassLoader classLoader) throws
> IOException {
>         List<URL> list = new ArrayList<URL>();
>         ArrayList<URL> urls =
> Collections.list(classLoader.getResources("META-INF"));
>         for (URL url : urls) {
>             String externalForm = url.toExternalForm();
>             int i = externalForm.lastIndexOf("META-INF");
>             externalForm = externalForm.substring(0, i);
>             url = new URL(externalForm);
>             list.add(url);
>         }
>         list.addAll(Collections.list(classLoader.getResources("")));
>         return list;
>     }
>
> so all jar containing META-INF will be added twice no? did i read too fast?
>
> - Romain
>
>
>
> 2012/1/31 Romain Manni-Bucau <rm...@gmail.com>
>
>> here i got the app classloader. Is it the same for you?
>>
>> - Romain
>>
>>
>>
>> 2012/1/31 AndyG <an...@orprovision.com>
>>
>>> I am getting pretty close to the cause in
>>> DeploymentsResolver.loadFromClasspath
>>>
>>> UrlSet urlSet = new UrlSet(classLoader);  <-- Contains duplicate urls.
>>>
>>> ...filter etc.
>>>
>>> Still contains duplicate urls with different drive letters after all
>>> filters
>>> have been applied.
>>>
>>> [62] = {java.util.HashMap$Entry@4579}
>>> jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
>>> jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/
>>> [63] = {java.util.HashMap$Entry@4570}
>>> jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
>>> jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/
>>>
>>> So duplicate modules are discovered in duplicate jars.
>>> Now no idea why UrlSet would get duplicate urls in the first place? - The
>>> supplied classloader definitely looks fine to me!
>>>
>>> The simple solution is to filter out duplicate urls in the urlSet.
>>> Probably
>>> in a platform specific manner.
>>>
>>> --
>>> View this message in context:
>>> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344892.html
>>> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>>>
>>
>>
>

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
The iteration just trims off 'META-INF' from the url

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345024.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
Just had a look at that myself and the duplicates are added from the get go.

Collections.list(classLoader.getResources("META-INF")) = Returns duplicates

Collections.list(classLoader.getResources("")) = empty

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4345020.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
in urlset class it does:

private static List<URL> getUrls(ClassLoader classLoader) throws
IOException {
        List<URL> list = new ArrayList<URL>();
        ArrayList<URL> urls =
Collections.list(classLoader.getResources("META-INF"));
        for (URL url : urls) {
            String externalForm = url.toExternalForm();
            int i = externalForm.lastIndexOf("META-INF");
            externalForm = externalForm.substring(0, i);
            url = new URL(externalForm);
            list.add(url);
        }
        list.addAll(Collections.list(classLoader.getResources("")));
        return list;
    }

so all jar containing META-INF will be added twice no? did i read too fast?

- Romain


2012/1/31 Romain Manni-Bucau <rm...@gmail.com>

> here i got the app classloader. Is it the same for you?
>
> - Romain
>
>
>
> 2012/1/31 AndyG <an...@orprovision.com>
>
>> I am getting pretty close to the cause in
>> DeploymentsResolver.loadFromClasspath
>>
>> UrlSet urlSet = new UrlSet(classLoader);  <-- Contains duplicate urls.
>>
>> ...filter etc.
>>
>> Still contains duplicate urls with different drive letters after all
>> filters
>> have been applied.
>>
>> [62] = {java.util.HashMap$Entry@4579}
>> jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
>> jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/
>> [63] = {java.util.HashMap$Entry@4570}
>> jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
>> jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/
>>
>> So duplicate modules are discovered in duplicate jars.
>> Now no idea why UrlSet would get duplicate urls in the first place? - The
>> supplied classloader definitely looks fine to me!
>>
>> The simple solution is to filter out duplicate urls in the urlSet.
>> Probably
>> in a platform specific manner.
>>
>> --
>> View this message in context:
>> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344892.html
>> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>>
>
>

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
here i got the app classloader. Is it the same for you?

- Romain


2012/1/31 AndyG <an...@orprovision.com>

> I am getting pretty close to the cause in
> DeploymentsResolver.loadFromClasspath
>
> UrlSet urlSet = new UrlSet(classLoader);  <-- Contains duplicate urls.
>
> ...filter etc.
>
> Still contains duplicate urls with different drive letters after all
> filters
> have been applied.
>
> [62] = {java.util.HashMap$Entry@4579}
> jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
> jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/
> [63] = {java.util.HashMap$Entry@4570}
> jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
> jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/
>
> So duplicate modules are discovered in duplicate jars.
> Now no idea why UrlSet would get duplicate urls in the first place? - The
> supplied classloader definitely looks fine to me!
>
> The simple solution is to filter out duplicate urls in the urlSet. Probably
> in a platform specific manner.
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344892.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
I am getting pretty close to the cause in
DeploymentsResolver.loadFromClasspath 

UrlSet urlSet = new UrlSet(classLoader);  <-- Contains duplicate urls.

...filter etc.

Still contains duplicate urls with different drive letters after all filters
have been applied.

[62] = {java.util.HashMap$Entry@4579}
jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
jar:file:/D:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/
[63] = {java.util.HashMap$Entry@4570}
jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/ ->
jar:file:/d:/OrproVisionServer/openejb/lib/ehcache-core-2.4.6.jar!/

So duplicate modules are discovered in duplicate jars.
Now no idea why UrlSet would get duplicate urls in the first place? - The
supplied classloader definitely looks fine to me!

The simple solution is to filter out duplicate urls in the urlSet. Probably
in a platform specific manner.

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344892.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Re: Trunk classloading is broken with case sensitive paths

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi Andy,

i'm not able to reproduce even on windows.

can you give more info on the way you get this error?

here my libs:
activeio-core-3.1.2.jar                           log4j-1.2.16.jar
                            openwebbeans-web-1.1.4-20120131.004354-50.jar
activemq-core-5.5.1.jar
mbean-annotation-api-4.0.0-beta-3-SNAPSHOT.jar       openws-1.4.2-1.jar
activemq-protobuf-1.1.jar                         mimepull-1.4.jar
                            quartz-1.8.5.jar
activemq-ra-5.5.1.jar                             neethi-3.0.1.jar
                            saaj-impl-1.3.12.jar
bval-core-0.4-incubating-20120107.040812-2.jar
 openejb-api-4.0.0-beta-3-SNAPSHOT.jar                scannotation-1.0.2.jar
bval-jsr303-0.4-incubating-20120107.040812-2.jar
 openejb-client-4.0.0-beta-3-SNAPSHOT.jar             serializer-2.7.1.jar
commons-beanutils-core-1.8.3.jar
 openejb-core-4.0.0-beta-3-SNAPSHOT.jar               serp-1.13.1.jar
commons-cli-1.2.jar
openejb-cxf-4.0.0-beta-3-SNAPSHOT.jar                slf4j-api-1.6.4.jar
commons-collections-3.2.1.jar
openejb-cxf-bundle-2.5.1.jar                         slf4j-log4j12-1.6.1.jar
commons-dbcp-1.4.jar
 openejb-cxf-transport-4.0.0-beta-3-SNAPSHOT.jar      stax2-api-3.0.2.jar
commons-lang-2.6.jar
 openejb-daemon-4.0.0-beta-3-SNAPSHOT.jar             stax-api-1.0.1.jar
commons-lang3-3.1.jar
openejb-ejbd-4.0.0-beta-3-SNAPSHOT.jar               stax-api-1.0-2.jar
commons-logging-1.1.1.jar
openejb-hsql-4.0.0-beta-3-SNAPSHOT.jar
swizzle-stream-1.0.2.jar
commons-net-2.0.jar
openejb-http-4.0.0-beta-3-SNAPSHOT.jar
woodstox-core-asl-4.0.8.jar
commons-pool-1.5.7.jar
 openejb-javaagent-4.0.0-beta-3-SNAPSHOT.jar          wsdl4j-1.6.2.jar
geronimo-connector-3.1.1.jar
 openejb-jee-4.0.0-beta-3-SNAPSHOT.jar                wss4j-1.6.4.jar
geronimo-j2ee-connector_1.6_spec-1.0.jar
 openejb-loader-4.0.0-beta-3-SNAPSHOT.jar             xalan-2.7.1.jar
geronimo-j2ee-management_1.1_spec-1.0.1.jar
openejb-multicast-4.0.0-beta-3-SNAPSHOT.jar
 xbean-asm-shaded-3.9.jar
geronimo-javamail_1.4_mail-1.8.2.jar
 openejb-server-4.0.0-beta-3-SNAPSHOT.jar
xbean-bundleutils-3.9.jar
geronimo-transaction-3.1.1.jar
 openejb-webservices-4.0.0-beta-3-SNAPSHOT.jar
 xbean-finder-shaded-3.9.jar
howl-1.0.1-1.jar                                  openjpa-2.1.1.jar
                           xbean-naming-3.9.jar
hsqldb-2.2.4.jar                                  opensaml-2.5.1-1.jar
                            xbean-reflect-3.9.jar
javaee-api-6.0-3.jar
 openwebbeans-ee-1.1.4-20120131.004409-50.jar         xercesImpl-2.9.1.jar
javassist-3.12.1.GA.jar
openwebbeans-ee-common-1.1.4-20120131.004345-50.jar  xml-resolver-1.2.jar
jettison-1.3.jar
 openwebbeans-ejb-1.1.4-20120131.004402-50.jar
 xmlschema-core-2.0.1.jar
joda-time-1.6.2.jar
openwebbeans-impl-1.1.4-20120131.004325-50.jar       xmlsec-1.4.6.jar
kahadb-5.5.1.jar
 openwebbeans-spi-1.1.4-20120131.004243-50.jar        xmltooling-1.3.2-1.jar

- Romain


2012/1/31 AndyG <an...@orprovision.com>

> This has something to do with DeploymentsResolver.loadFromClasspath
>
> The xbean UrlSet contains duplicate urls for every jar on the classpath and
> these are not filtered out.
>
> --
> View this message in context:
> http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344736.html
> Sent from the OpenEJB Dev mailing list archive at Nabble.com.
>

Re: Trunk classloading is broken with case sensitive paths

Posted by AndyG <an...@orprovision.com>.
This has something to do with DeploymentsResolver.loadFromClasspath

The xbean UrlSet contains duplicate urls for every jar on the classpath and
these are not filtered out.

--
View this message in context: http://openejb.979440.n4.nabble.com/Trunk-classloading-is-broken-with-case-sensitive-paths-tp4344116p4344736.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.