UNC paths not resolvable by DefaultPackageScanClassResolver
-----------------------------------------------------------

                 Key: CAMEL-4982
                 URL: https://issues.apache.org/jira/browse/CAMEL-4982
             Project: Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 2.9.0
            Reporter: Edward Nickson


If UNC paths are used to map to jar files on the classpath, the 
DefaultPackageScanResolver resolves the UNC path to an invalid value. This 
makes it impossible map using UNC paths.

The method DefaultPackageScanResolver.find(PackageScanFilter test, String 
packageName, ClassLoader loader, Set<Class<?>> classes) will attempt to convert 
the library path resulting in an incorrect path: urlPath = new 
URI(url.getFile()).getPath(); The first path element appears stripped from the 
path. If the path is specified using UNC this conversion should be skipped.

Ex. before conversion: 
jar:file://versioncontrol/D/version_control/Test/lib/activemq-camel-5.4.2.jar!/org/apache/activemq/camel/converter/

    after conversion:  java.io.FileNotFoundException: 
\D\version_control\Test\lib\activemq-camel-5.4.2.jar (The system cannot find 
the path specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at 
org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:299)
        at 
org.apache.camel.impl.DefaultPackageScanClassResolver.find(DefaultPackageScanClassResolver.java:209)
        at 
org.apache.camel.impl.DefaultPackageScanClassResolver.findAnnotated(DefaultPackageScanClassResolver.java:137)
        at 
org.apache.camel.impl.converter.AnnotationTypeConverterLoader.load(AnnotationTypeConverterLoader.java:114)
        at 
org.apache.camel.impl.converter.BaseTypeConverterRegistry.loadTypeConverters(BaseTypeConverterRegistry.java:406)
        at 
org.apache.camel.impl.converter.DefaultTypeConverter.doStart(DefaultTypeConverter.java:42)
        at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67)
        at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54)
        at 
org.apache.camel.util.ServiceHelper.startService(ServiceHelper.java:56)
        at 
org.apache.camel.impl.DefaultCamelContext.startServices(DefaultCamelContext.java:1635)
        at 
org.apache.camel.impl.DefaultCamelContext.addService(DefaultCamelContext.java:903)
        at 
org.apache.camel.impl.DefaultCamelContext.getTypeConverter(DefaultCamelContext.java:986)
        at 
org.apache.camel.impl.DefaultCamelContext.getTypeConverterRegistry(DefaultCamelContext.java:1003)
        at 
org.apache.camel.impl.DefaultCamelContext.forceLazyInitialization(DefaultCamelContext.java:1963)
        at 
org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1437)
        at 
org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1349)
        at 
org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:176)
        at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:67)
        at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:54)
        at 
org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1317)
        at 
org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:221)
        at 
org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:115)
        at 
org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:240)
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:97)
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:303)
        at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:911)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:428)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
        at 
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
        at 
com.wcg.llas.integration.SingletonServiceCallerFactory$1.call(SingletonServiceCallerFactory.java:68)
        at 
com.wcg.llas.integration.SingletonServiceCallerFactory$1.call(SingletonServiceCallerFactory.java:51)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)

--
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

        

Reply via email to