You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by Benson Margulies <be...@basistech.com> on 2016/08/15 14:34:27 UTC

How do mvn: urls end up in classpaths in Karaf 4.0.5?

Folks,

I just upgraded my build to use pax-exam 4.9.1. And I got a very
strange problem.

If I run a single function test method:

  mvn -Dit.test=com.basistech.ws.itest.AnvilsRealComponentIT"#complexEntityRouting"

my code dies, because an mvn: URL leaks out.

This happens when Guice is referencing one of its classes, and the
class load fails.

org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm
throws an IllegalStateException due to getting an mvn: URL as the
class source location. Does anyone have any clues as to what to look
at here?


java.lang.Thread.State: RUNNABLE
 at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:482)
 at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:474)
 at java.net.URL.toExternalForm(URL.java:922)
 at java.net.URL.toString(URL.java:908)
 at java.lang.ClassLoader.defineClassSourceLocation(ClassLoader.java:675)
 at java.lang.ClassLoader.defineClass(ClassLoader.java:759)
 at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2370)
 at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2154)
 at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1542)
 at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
 at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
 at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:166)
 at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
 - locked <0x2409> (a com.google.inject.internal.InheritingState)
 at com.google.inject.Guice.createInjector(Guice.java:96)
 at com.google.inject.Guice.createInjector(Guice.java:73)
 at com.google.inject.Guice.createInjector(Guice.java:62)
 at com.basistech.rosette.relax.RelationshipAnnotatorFactory.initializeInternal(RelationshipAnnotatorFactory.java:130)
 - locked <0x23da> (a com.basistech.rosette.relax.RelationshipAnnotatorFactory)
 at com.basistech.rosette.relax.RelationshipAnnotatorFactory.initialize(RelationshipAnnotatorFactory.java:111)
 at com.basistech.relax.osgi.impl.RelaxComponentService$Factory.<init>(RelaxComponentService.java:121)
 at com.basistech.relax.osgi.impl.RelaxComponentService.createFactory(RelaxComponentService.java:85)
 at com.basistech.rosette.osgi.util.AbstractComponentService.createFactory(AbstractComponentService.java:47)
 at com.basistech.ws.worker.api.AbstractWorkerDocumentComponentService.configureOneFactory(AbstractWorkerDocumentComponentService.java:82)
 at com.basistech.ws.worker.api.AbstractWorkerDocumentComponentService.init(AbstractWorkerDocumentComponentService.java:57)
 at com.basistech.ws.worker.core.Worker.configureComponent(Worker.java:223)
 at com.basistech.ws.worker.core.Worker.lambda$activate$12(Worker.java:179)
 a

Re: How do mvn: urls end up in classpaths in Karaf 4.0.5?

Posted by Benson Margulies <be...@basistech.com>.
One other factoid:

When I don't use "#methodname" to select a method, I do see a few of
these IllegalStateExceptions go by for things like configadmin and
sshd. They don't even result in log traffic. When I use the #, that
adds a guice jar file, and the result is a fail.


On Mon, Aug 15, 2016 at 10:34 AM, Benson Margulies <be...@basistech.com> wrote:
> Folks,
>
> I just upgraded my build to use pax-exam 4.9.1. And I got a very
> strange problem.
>
> If I run a single function test method:
>
>   mvn -Dit.test=com.basistech.ws.itest.AnvilsRealComponentIT"#complexEntityRouting"
>
> my code dies, because an mvn: URL leaks out.
>
> This happens when Guice is referencing one of its classes, and the
> class load fails.
>
> org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm
> throws an IllegalStateException due to getting an mvn: URL as the
> class source location. Does anyone have any clues as to what to look
> at here?
>
>
> java.lang.Thread.State: RUNNABLE
>  at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:482)
>  at org.apache.felix.framework.URLHandlersStreamHandlerProxy.toExternalForm(URLHandlersStreamHandlerProxy.java:474)
>  at java.net.URL.toExternalForm(URL.java:922)
>  at java.net.URL.toString(URL.java:908)
>  at java.lang.ClassLoader.defineClassSourceLocation(ClassLoader.java:675)
>  at java.lang.ClassLoader.defineClass(ClassLoader.java:759)
>  at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2370)
>  at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2154)
>  at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1542)
>  at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)
>  at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)
>  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>  at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:166)
>  at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
>  - locked <0x2409> (a com.google.inject.internal.InheritingState)
>  at com.google.inject.Guice.createInjector(Guice.java:96)
>  at com.google.inject.Guice.createInjector(Guice.java:73)
>  at com.google.inject.Guice.createInjector(Guice.java:62)
>  at com.basistech.rosette.relax.RelationshipAnnotatorFactory.initializeInternal(RelationshipAnnotatorFactory.java:130)
>  - locked <0x23da> (a com.basistech.rosette.relax.RelationshipAnnotatorFactory)
>  at com.basistech.rosette.relax.RelationshipAnnotatorFactory.initialize(RelationshipAnnotatorFactory.java:111)
>  at com.basistech.relax.osgi.impl.RelaxComponentService$Factory.<init>(RelaxComponentService.java:121)
>  at com.basistech.relax.osgi.impl.RelaxComponentService.createFactory(RelaxComponentService.java:85)
>  at com.basistech.rosette.osgi.util.AbstractComponentService.createFactory(AbstractComponentService.java:47)
>  at com.basistech.ws.worker.api.AbstractWorkerDocumentComponentService.configureOneFactory(AbstractWorkerDocumentComponentService.java:82)
>  at com.basistech.ws.worker.api.AbstractWorkerDocumentComponentService.init(AbstractWorkerDocumentComponentService.java:57)
>  at com.basistech.ws.worker.core.Worker.configureComponent(Worker.java:223)
>  at com.basistech.ws.worker.core.Worker.lambda$activate$12(Worker.java:179)
>  a