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